我有一个使用submit()
jquery方法调用ajax帖子的表单:
<script>
$(document).ready(function(){
$('#myform').submit(function(){
submitFunction(); /* does and Ajax post */
return false;
});
});
</script>
<form id="myform" action="thisaction" method="post">
<!-- ... -->
</form>
现在,问题是,当Ajax帖子成功时,我想取消表单提交的jquery override
,以便让它执行正常操作(thisaction
)。我已经尝试过了:
/* Inside submitFunction() */
$.ajax({
/* random data... */
success: function(jsonData)
{
$('#mylogin').submit(function(){
;
});
}
});
但是当我调试它时,submitFunction()
仍在第二次提交后被调用...如何禁用此功能并将normal
HTTP帖子发送到thisaction
?
答案 0 :(得分:1)
在提交处理程序中,submitFunction()
:
$(this).off('submit')
在ajax成功回调中:
$('#myform').submit();
这将取消绑定返回false的提交处理程序,并在调用ajax回调时重新提交表单。
您还可以尝试.one()
绑定一个只执行一次的处理程序:
$('#myform').one('submit', function() {...
答案 1 :(得分:0)
你必须解开事件。
$('#mylogin').submit(function(){
$(this).unbind("submit");
});