您的位置:首页 > Web前端 > JavaScript

【笔记】formvalidtor常见问题总结

2017-04-23 13:41 239 查看
1. 如何实现一个控件,根据不同的情况,实现不同的控制?[top]
你只需要在你的不同种情况下,重新设置你的【一行代码】。例如:
if(条件)
$("#id").formValidator({配置1}).inputValidator({配1});
else
$("#id").formValidator({配置2}).inputValidator({配2});

2. 一个页面上我有几个tab页,如何实现每个Tab页上的控件单独校验?[top]
每个Tab页上需要校验的控件,你在写【一行代码】的时候,显式的声明组号。
$.formValidator.initConfig({validatorgroup:"1"});
$.formValidator.initConfig({validatorgroup:"2"});
再在formValidator里显式的声明组号validatorgroup,例如:
$("#id").formValidator({validatorgroup:"2"...}).inputValidator({...});
3. 所有校验通过后,我还要再做别的判断可以吗?我自己的判断没有通过可以中断提交吗?[top]
同样很简单,你页只需设置该组的全局配置,
jQuery.formValidator.initConfig({onsuccess:function()
{
if(你的额外判断失败)
return false;
else
return true;
}})
4. 我有一组的checkbox(radiobutton)如何设置校验?[top]
你只需在该组的第一个checkbox上设置校验信息即可,具体请参考demo1里的范例
1、如果你该组的第一个控件的ID ,你可以这么写:
$("sex_1").inputValidator({...})
2、如果你只知道该组的name,你可以这么写:
$("input:check[@name='sex']").inputValidator({...})
就是checkbox 可以拿第一个id 写控件函数, 也可拿name写
5. 我有2个表单元素,任意一个元素输入东西就算验证通过,如何写代码?比如要求输入中文名字和英文名字任意一个即算校验通过。[top]
$("#name_cn,#name_en").formValidator({tipid:"IMTip",onshow:"请填写任一种名字)",onfocus:"请请填写任一种名字。",oncorrect:"输入正确!"}).functionValidator({fun:allEmpty}); 
function allEmpty(val,elem) 

return ($("#name_cn").val()=="" && $("#name_cn").val()=="")?'如果想和客户在线洽谈,请至少填写一种IM软件帐号!':true; 
}
相当于自定义函数校验了, 只是注意在选择器那部分, 可以写逗号别忘了
6. ajaxValidator校验,离开焦点马上点击提交按钮,这个时候如果服务器还没有返回数据怎么办?[top]
新版本的ajaxValidator提供了一个配置参数buttons(你点提交的按钮(组)jQuery对象),如果你触发了ajax校验,buttons里对应的按钮就会灰掉,一直等待服务器返回数据为止。例如:
$("#test1").formValidator({...}).inputValidator({...}).ajaxValidator({
url : "Default.aspx",
datatype : "json",
success : function(data){...},
4000

buttons: $("#button_id"), // 可以是一组按钮
error: function(){alert("服务器没有返回数据,可能服务器忙,请重试");},
onerror : "该用户名不可用,请更换用户名重新",
onwait : "正在对用户名进行合法性校验,请稍候..."
});
就是ajax数据没返回时, 提交按钮会被置灰, 但是注意: 是新版本!
7. 在A条件下,某个控件是不检验的,在B条件下,这个控件又是检验的,如何实现?[top]
if(A条件)
{
$("#sfzh").attr("disabled",true).unFormValidator(true); //解除校验
}
else
{
$("#sfzh").attr("disabled",false).unFormValidator(false);//恢复校验
}
8. 一个表单控件需要ajaxValidator校验,在新增和修改页面如何处理?[top]
问题:我有一个表单控件(例如:昵称)调用了ajaxValidator函数
在新增的页面我调用了ajaxValidator校验是否唯一,是没有问题的;
但是在修改页面,我修改成别的值可以判断唯一性,但是“刚点进去,什么都不修改,就离开焦点”的时候和修改回原来的值的时候,提示重复——事实上这个值已经分配给当前用户了!如何解决这个问题?
答:你可以把当前这个表单控件的值存在hidden控件里,在ajaxValidator函数的url参数中,串上这个hidden的值。
在服务器端,如果这个hidden的值为空,说明是新增的,就判断唯一性;如果hidden值不为空,hidden的值需要跟表单控件的值比较
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  js插件 formvalidator