0

这是我的表格:

<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
4

1 回答 1

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');  
于 2012-07-16T15:32:32.240 回答