Как установить действие формы через JavaScript?
У меня есть HTML-форма, действие которой должно быть задано динамически с помощью JavaScript. Как мне это сделать? Вот чего я пытаюсь достичь:
<script type="text/javascript">
function get_action() { // inside script tags
return form_action;
}
</script>
<form action=get_action()>
...
</form>
Ответы
Ответ 1
Вы не можете вызывать функции JavaScript в стандартных атрибутах HTML, кроме onXXX
. Просто назначьте его во время загрузки окна.
<script type="text/javascript">
window.onload = function() {
document.myform.action = get_action();
}
function get_action() {
return form_action;
}
</script>
<form name="myform">
...
</form>
Вы видите, что я дал форму name
, так что он легко доступен в document
.
В качестве альтернативы вы также можете сделать это во время события submit
:
<script type="text/javascript">
function get_action(form) {
form.action = form_action;
}
</script>
<form onsubmit="get_action(this);">
...
</form>
Ответ 2
Обычный JavaScript:
document.getElementById('form_id').action; //Will retrieve it
document.getElementById('form_id').action = "script.php"; //Will set it
Использование jQuery...
$("#form_id").attr("action"); //Will retrieve it
$("#form_id").attr("action", "/script.php"); //Will set it
Ответ 3
Очень простое решение с jQuery:
$('#myFormId').attr('action', 'myNewActionTarget.html');
Ваша форма:
<form action=get_action() id="myFormId">
...
</form>
Ответ 4
document.forms[0].action="http://..."
... предполагая, что это первая форма на странице.
Ответ 5
Сделайте, как говорит Рабботт, или если вы откажетесь от jQuery:
<script type="text/javascript">
function get_action() { // inside script tags
return form_action;
}
</script>
<form action="" onsubmit="this.action=get_action();">
...
</form>
Ответ 6
Фактически, когда мы хотим этого, мы хотим изменить действие в зависимости от того, на какую кнопку отправки нажимаем.
Здесь вам не нужно даже присваивать форму name
или id
. Просто используйте свойство form
для элемента clicked:
<form action = "/default/page" >
<input type=submit onclick='this.form.action="/this/page";' value="Save">
<input type=submit onclick='this.form.action="/that/page";' value="Cancel">
</form>
Ответ 7
Задание формы формы после выбора опции с помощью JavaScript
<script>
function onSelectedOption(sel) {
if ((sel.selectedIndex) == 0) {
document.getElementById("edit").action =
"http://www.example.co.uk/index.php";
document.getElementById("edit").submit();
}
else
{
document.getElementById("edit").action =
"http://www.example.co.uk/different.php";
document.getElementById("edit").submit();
}
}
</script>
<form name="edit" id="edit" action="" method="GET">
<input type="hidden" name="id" value="{ID}" />
</form>
<select name="option" id="option" onchange="onSelectedOption(this);">
<option name="contactBuyer">Edit item</option>
<option name="relist">End listing</option>
</select>