Как настроить действие формы через JavaScript? - PullRequest
49 голосов
/ 23 апреля 2010

У меня есть HTML-форма, действие которой должно быть установлено динамически через JavaScript. Как мне это сделать? Вот что я пытаюсь достичь:

<script type="text/javascript">
function get_action() { // inside script tags
 return form_action;
 }
</script>

<form action=get_action()>
...
</form>

Ответы [ 7 ]

65 голосов
/ 23 апреля 2010

Вы не можете вызывать функции 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>
57 голосов
/ 23 апреля 2010

Простой 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
7 голосов
/ 20 апреля 2015

Очень простое решение с JQuery:

$('#myFormId').attr('action', 'myNewActionTarget.html');

Ваша форма:

<form action=get_action() id="myFormId">
...
</form>
2 голосов
/ 27 июля 2017

На самом деле, когда мы этого хотим, мы хотим изменить действие в зависимости от того, какую кнопку отправки мы нажимаем.
Здесь вам даже не нужно присваивать name или id форме. Просто используйте form свойство выбранного элемента:

<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>
2 голосов
/ 23 апреля 2010
document.forms[0].action="http://..."

... при условии, что это первая форма на странице.

1 голос
/ 23 апреля 2010

Делайте, как говорит Рабботт, или если вы отказываетесь от jQuery:

<script type="text/javascript">
function get_action() { // inside script tags
  return form_action;
}
</script>

<form action="" onsubmit="this.action=get_action();">
...
</form>
0 голосов
/ 20 июля 2014

Настройка действия формы после выбора опции с использованием 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...