使用jQuery无法正常动态更改HTML表单中的操作

时间:2014-05-04 15:14:45

标签: javascript jquery html forms

我正在尝试使用jQuery更改表单的操作。听起来很简单。这就是我所拥有的:

的mypage.html

<form id="myform" method="POST" action="fake" onsubmit="changeAction()">
<!-- Several fields here -->
</form>

mypage.js

function changeAction()
{
    $('#myform').submit(function () {
        // Dynamically builds action
        var action = '/some/url/based/on/dynamic/content';
        $('#myform').attr('action', action);
    });
}

我的问题是所调用的操作始终是 fake ,这是我在表单中添加的默认操作。我尝试了几个选项,例如get(0).setAttribute而不是attr,但似乎没有任何效果。使用 jQuery 1.10.2 ,如果有帮助。

如何在提交之前动态更改表单操作?

1 个答案:

答案 0 :(得分:1)

问题是,您从提交事件运行的代码不会更改操作,它只会绑定一个事件,如果再次提交表单,则会更改操作。

更改函数中的操作,而不是绑定事件:

function changeAction() {
    // Dynamically builds action
    var action = '/some/url/based/on/dynamic/content';
    $('#myform').attr('action', action);
}