Validform使用ajax详解

时间:2023-12-17 11:34:02

demo.config({
    showAllError:true,
    url:"这里指定提交地址",
    ajaxpost:{
        //可以传入$.ajax()能使用的,除dataType外的所有参数;
    },
    ajaxurl:{
        //可以传入$.ajax()能使用的,除dataType外的所有参数;
    }
})

可用参数:
tiptype等 5.3.2+:可以在这里设置初始化可用的所有参数
url:指定表单的提交路径,这里指定的路径会覆盖表单action属性所指定的路径
ajaxpost:表单以ajax提交时,可以在这里配置ajax的参数
ajaxurl:配置实时验证ajax的参数

①、config方法还能为已经初始化过的表单重新配置参数了!5.3.2+
如var demo=$(".formsub").Validform();
demo.config({tiptype:2});
demo下的各表单还能分别配置不同参数!
如demo.eq(0).config({tiptype:1,ajaxPost:true});
demo.eq(1).config({tiptype:1,callback:function(curform){my_method_to_submit_form(); return false;}});

②、执行config可以动态设置、添加参数,如:
demo.config({
    url:"http://validform.rjboy.cn"
});
$(".save").click(function(){
    demo.config({
        ajaxpost:{
            timeout:1000
        }
    });
});
那么在点击save按钮后,demo所对应的表单的config={
    url:"http://validform.rjboy.cn",
    ajaxpost:{
        timeout:1000
    }
}
③、参数url的优先级:form表单的action所指定的提交地址会被config.url覆盖,
config.url会被config.ajaxpost.url覆盖,config.ajaxpost.url会被Validform对象的方法submitForm(flag,url)
和ajaxPost(flag,sync,url)里的url覆盖。
如果表单里没有指定action提交地址,那么就会提交到config.url设定的地址。
考虑到整个验证框架的逻辑,传入dataType参数不会起作用,不会被覆盖,ajax必须返回含有status值的json数据。

④、另外注意的是:传入的success和error方法里,能多获取到一个参数,如:
demo.config={
    ajaxpost:{
        url:"",
        timeout:1000,
        ...,
        success:function(data,obj){
            //data是返回的json数据;
            //obj是当前表单的jquery对象;
        },
        error:function(data,obj){
            //data是{ status:**, statusText:**, readyState:**, responseText:** };
            //obj是当前表单的jquery对象;
        }
    },
    ajaxurl:{
        success:function(data,obj){
            //data是返回的json数据;
            //obj是当前正做实时验证表单元素的jquery对象;
            //注意:5.3版中,实时验证的返回数据须是含有status值的json数据!
            //跟callback里的ajax返回数据格式统一,建议不再返回字符串"y"或"n"。目前这两种格式的数据都兼容。
        }
    }
}