日期:2014-05-16  浏览次数:20420 次

表单校验框如何回调
       大家好,我有一个问题请教大家,在对表单进行js校验的过程中,html表单中存在多个元素需要ajax校验,在点击提交后,如何才能等到这些远程校验返回结果后,决定是否提交表单?我想到了是依次回调的做法,请问大家有什么好的做法,或者能提供校验框架里面的实现思路。谢谢!
JavaScript Ajax 校验

------解决方案--------------------
表单的提交按钮不要设置成submit,就一般的button或者图片,验证绑定在按钮的click事件上

设置一个对象,有多个属性,记录标示这些请求是否合格,默认都为false,然后就简单了

var result = {
    r1 : false,
    r2 : false,
    r3 : false,
    r4 : false
}//有多少写多少
btn.click(function(){
    $.ajax(url1,function(data){
        data.result==1 && result.r1 = true;
        submitForm();
    });
    $.ajax(url2,function(data){
        data.result==1 && result.r2 = true;
        submitForm();
    });
    $.ajax(url3,function(data){
        data.result==1 && result.r3 = true;
        submitForm();
    });
    $.ajax(url4,function(data){
        data.result==1 && result.r4 = true;
        submitForm();
    });
});
function submitForm(){
    var canSubmit = true;
    for(var p in result){
        result.hasOwnProperty(p) && !reslut[p] && (canSubmit = false);
    }
    canSubmit && $('#form').submit();
}


------解决方案--------------------
引用:
Quote: 引用:

额,就这个问题,我也做过啊,有必要这么多ajax吗?把所有要验证的数据一起提交不就得了吗

$.post(url, { name: name,... }, function (result) {
                if (!result.Success) {
                    $.messager.alert('提示', result.Message);
                    return false;
                }
                else {
                    $.messager.alert('提示',&nbs