我在一个页面中有两个ajax调用,如下所示:
8
7 5 6
4 3 2
1
$("#generate_rule").click(function(){
alert("req-gen");
var valid = $("#rule_setup").validate({
submitHandler: function(form) {
$.ajax({
method: "POST",
url: "ajax_ops.php",
data: $("#rule_setup").serialize(),
success: function(response) {
alert("res-gen");
}
});
}
});
});
$("#save").click(function(){
alert("req-save");
var valid = $("#rule_setup").validate({
submitHandler: function(form) {
$.ajax({
method: "POST",
url: "ajax_ops.php",
data: $("#rule_setup").serialize(),
success: function(response) {
alert("res-save");
}
});
}
});
});
当我第一次触发这些ajax功能时,它们工作正常。如果我首先触发一个函数而另一个函数接下来,那么首先触发的函数总是会收到ajax响应。这是警报的顺序:
单击“保存”按钮 请求保存 2. res-save
单击“生成规则”按钮 请求 2. res-save
想知道造成这个问题的原因。任何帮助将不胜感激。
答案 0 :(得分:0)
问题解决了!
这是由于不正确使用表单验证器使用造成的。当通过任一功能提交表单时,“submitHandler:”正在触发。
我换了一行:
var valid = $("#rule_setup").validate({
submitHandler: function(form) {
//Submit ajax here
}
});
带
var validator = $( "#rule_setup" ).validate();
var valid = validator.form();
if (valid){
//Submit ajax here
}