Да, вы можете изменить action
формы. Я расскажу вам, как это сделать.
Во-первых, ваша форма должна иметь имя и URL-адрес действия, указанные в HTML:
<form name="aformiam" method="post" action="/somewhere/to/go.php">
Далее вы захотите запустить JavaScript при отправке формы, поэтому вы должны установить для свойства onClick вашей кнопки отправки функцию, такую как:
<input type="submit" value="Send Form" onClick="return submitForm();" />
Наконец, ваша функция JavaScript для фактического изменения действия формы и отправки формы.
function submitForm() {
// do anything here you need to determine which URL to post to
// I am just making an example here
var targetURL = '/some/url/to/post.php';
// now we will change the form's action
document.aformiam.action = targetURL;
// finally, submit the form by returning true
return true;
}
Обратите внимание, что на последнем шаге, где мы возвращаем true, это отправляет форму, потому что тип входного элемента - submit
, а функция вызывается событием onClick
. Если бы это был, например, элемент ввода типа button
, тег a
или img
, то нам нужно было бы запустить отправку формы, используя что-то вроде следующего:
document.aformiam.submit();
Это решение будет работать для изменения действия и отправки на одиночный URL. Если вам нужно опубликовать несколько URL-адресов одновременно, вам придется использовать другие методы, такие как XMLHttpRequest. Если это так, опубликуйте комментарий, указывающий на это, и я приведу пример для этого.