jquery ajax的反应很混乱

时间:2018-03-30 17:00:43

标签: jquery ajax response mixed

我在一个页面中有两个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

想知道造成这个问题的原因。任何帮助将不胜感激。

1 个答案:

答案 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
        }