留点学习jquery validation总结的代码:
function checkForm(){ validator = $("#commentForm").validate({// #formId为需要进行验证的表单ID errorElement :"span",// 使用"div"标签标记错误, 默认:"label","span"默认直接在文本框右边显示 //wrapper:"li",// 使用"li"标签再把上边的errorELement包起来 //errorClass :"validate-error",// 错误提示的css类名"error" //onsubmit:false,// 是否在表单提交时验证,默认:true //onfocusout:false,// 是否在获取焦点时验证,默认:true //onkeyup :false,// 是否在敲击键盘时验证,默认:true //onclick:false,// 是否在鼠标点击时验证(一般验证checkbox,radiobox) //focusCleanup:false,// 当未通过验证的元素获得焦点时,并移除错误提示,默认false //focusInvalid : true, //提交表单后,未通过验证的表单(第一个或提交之前获得焦点的未通过验证的表单)会获得焦点,默认true //ignore: "#cname" //对某些元素不做验证,值对应选择器,如果需要忽略多个文本框,可以使用class类选择器 ignoreTitle: true, validClass: "valid", //验证成功时,使用的css类名 success: function(label) { //验证成功时使用的提示消息 label.addClass("valid").html("Ok!") }, submitHandler:function(form){//如果验证通过,点击submit按钮后执行的操作,注:使用此方法后,form中的action="xx"会失效 alert('验证通过'); }, invalidHandler: function(form, validator) {//如果验证不通过,此处执行额外操作 var errors = validator.numberOfInvalids(); //获得错误总数 var message = '你存在' + errors + '个错误'; //alert(message); }, rules:{ "x.name":{ //需要进行验证的输入框name required: true, //验证条件:必填 minlength3: 5,// 验证条件:最小长度为5 maxlength3 : 10, checkCharType : [true,false,false,null] }, "x.sex":{ //需要进行验证的输入框name required: true, //验证条件:必填 minlength2: 5,// 验证条件:最小长度为5 maxlength2 : 10 }, }, messages:{ "x.name":{ required : "不能为空", minlength : "最小值为5" }, "x.sex":{ required : "不能为空", minlength : "最小值为5" } } }); } function xx(){ //alert($("#commentForm").validate().form()); //执行表单验证,同时判断验证是否通过,如果通过返回true,否则返回false $("#commentForm").valid(); //$("#commentForm").valid()表示运行form的表单验证 } function cl(){ $("#commentForm").validate().resetForm(); //清空所有的错误提示 }
在学习jquery validation过程中发现一个问题:onfocusout、onkeyup和onclick默认值都是true,但是如果在代码中我再次设置为true,它会报错(firebug提示:f.settings[e].call is not a function),谁能告诉我原因?
onfocusout:true,// 是否在获取焦点时验证,默认:true onkeyup :true,// 是否在敲击键盘时验证,默认:true onclick:true,// 是否在鼠标点击时验证(一般验证checkbox,radiobox)