这是我的表格:
<form name="Aform" method="post" action="test.php" id="Aform">
这是我的剧本:
var validator = $("#Aform").validate({
...
// form.submit(); <-- it works
form.submit(function() {
$.post($(this).attr("action"), $(this).serialize(), function(data) {
$.colorbox({html:data});
},
'html');
return false;
});
// <-- it does not work
答案 0 :(得分:1)
您是否看过JS控制台,看看是否产生了任何错误?您是否已验证POST请求是否成功并返回数据?
在我看来,只有在提交事件发生后才会运行此代码(假设代码未显示)。然后你定义了另一个事件处理程序,但之后该处理程序永远不会被触发,因为提交事件不会再次发生。
调用form.submit()
会触发提交事件,调用form.submit(function(){})
会定义事件处理程序,但不会触发提交事件。
您可以在定义事件处理程序后调用form.submit()
,但定义事件处理程序并立即调用它只是跳过一个不必要的环节。你可以这样做:
var validator = $("#Aform").validate({
...
$.post($(this).attr("action"), $(this).serialize(), function(data) {
$.colorbox({html:data});
},
'html');