我正在尝试使用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 ,如果有帮助。
如何在提交之前动态更改表单操作?
答案 0 :(得分:1)
问题是,您从提交事件运行的代码不会更改操作,它只会绑定一个事件,如果再次提交表单,则会更改操作。
更改函数中的操作,而不是绑定事件:
function changeAction() {
// Dynamically builds action
var action = '/some/url/based/on/dynamic/content';
$('#myform').attr('action', action);
}