$(document).ready(function(){
var options = {
beforeSubmit: validate,
success:successDiv
};
$("#equiForm").ajaxForm(options);
})

function validate(formData, jqForm, options){
var form = jqForm[0];
var code = form.code.value;
alert(code);
$.ajax({
type: "post",
url: "checkCode.do?code=" + code,
dataType: "html",
success: function(data, text){
if (data == "code exist") {
alert("编号重复");
return false;
} else {
return true;
}
}
});
}
在validate方法中需要验证表单里的一个编号是否重复,用的$.ajax去后台异步查找是否存在编号是否存在,然后返回一个结果,但是还没等$.ajax执行完,表单已经提交了。不知道这个问题怎么解决?小弟初学jquery,希望高人们多多指点。

解决方案 »

  1.   

    你加个error试试,在里面alert
    看下会不会执行
      

  2.   


    加error?  他没有出错,只是因为是异步提交的,validate方法里的ajax还没有执行完毕,表单就已经提交了。
      

  3.   

     alert(code);
    有弹出来吗?
      

  4.   

    我怀疑是你后台代码的问题
    所以才让你加error试试 会不会弹出信息来
      

  5.   

    ajax 设置同步
    async:false
      

  6.   


    后台绝对没有问题,你说的也弹出来了,只是因为是异步的,所以还没等ajax执行完,表单就提交了,不知道改如何解决。