1.textarea验证长度, 可以直接用的
文本域验证:
<textarea id="txtcontent" name="txtcontent" rows="" cols=""></textarea>
<div id="txtcontentTip" style="width:300px"></div>
$("#txtcontent").formValidator({ onShow: "请输入专家简介!", onFocus: "输入一个到一百个字符", onCorrect: "输入正确,谢谢您的合作!" }).inputValidator({ min: 1, max: 100, onError: "输入长度,不对!" });
2.ckeditor 验证是否为空, 我的解决办法, 可以自己写外部函数
注意:这是个验证ckeditor内容是否为空的函数, 长度验证可以忽略, 因为富文本编辑器内容的长度这么计算不可行, 虽然也能计算出来, 但是不是正确的长度.
jsp内容:
<textarea name="remark" id="remark" cols="10" rows="2" class="ckeditor"></textarea>
<div id="remarkTip" style="width:300px"></div>
js内容:
function
isCKempty
() {
// 获取富文本编辑器的内容
var
content = CKEDITOR.instances[
'remark'
].getData();
if
(content) {
// 有内容返回
if
(content.length > 0 && content.length <= 10) {
// 当然, 富文本这个长度不能这么写的, 富文本里字符计算单位肯定不是1个字一个字算,还有标签等等
return
true
;
}
else
{
return
'输入长度不正确'
;
}
}
else
{
// 富文本编辑器内容为空
return
'请输入个人简介'
;
}
}
下面就是关键了, formValidator调用这个外部函数即可,这里onFocus是不好使的
$(
"#remark"
).formValidator({ onShow:
"请输入个人简介!"
,
onFocus:
"输入1到100个字符"
,
onCorrect:
"输入正确,谢谢您的合作!"
}).functionValidator({
fun:isCKempty
});
注意:对于functionValidator老版本好像不支持. 4.1.1以后肯定支持.
另外, 下面是用户名中包含了敏感字的一个例子
(
"#username"
).formValidator({onShow:
"用户名至少5个字符,最多10个字符"
...})
.inputValidator({min:5,max:10,onError:
"你输入的用户名非法,请确认"
})
.functionValidator({fun:
function
(val){
if
(val ==
"admin"
){
return
"该用户名包含保留关键字"
}
}});
function 中 return的返回值可以是boolean, 也可以是string, onError属性默认: "输入错误", string会替代它
3.类似有必须传图片的需求,
我这样验证的
同样是用自定义函数, 当然要看页面的实际情况例如, 图片img标签在被上传后, 会生成在imgDiv下一个img标签的元素, 则用自定义函数, 看imgDiv下是否有img标签即可了
<div
id
=
"imgDiv"
name
=
"imgDivTip"
>
<!-- <img id="img" name="img" alt="" src="images/t.jpg"/> -->
</
div
>
<
div
id
=
"imgDivTip"
style
=
"width:300px"
></
div
>
(
"#imgDiv"
).formValidator({onShow:
"请上传企业logo!"
, onCorrect:
"ok,谢谢您的合作!"
}).functionValidator({
fun:isImgempty
});
function
isImgempty() {
if
($(
"#imgDiv"
)
.find("img")
.length == 1) {
return
true
;
}
return
false
;
}
4. 大坑, 分组验证 , 注意validatorGroup 必须大写!
今天在同一个页面使用分组验证了两组表单,formValidator校验数据,但最后出现了问题。
始终无法按照两组分开验证, 网上查各种资料, 都是用validatorgroup来解决.但是为什么就是不好使.
后来改了很多,但最后发现是因为
validatorGroup
中的validatorgroup
写成了小写的,有很多资料validatorGroup的"g"依然是小写, 不知道是以前老版本的原因还是什么
分组方法:
首先如果两个提交按钮, 分别在提交按钮上绑定
οnclick="return jQuery.formValidator.pageIsValid('组号码');"
js中注意分组属性:
第一组校验组,默认组号为"1"
$.formValidator.initConfig({formID:
"id_frm_password"
,errorFocus:
false
,onSuccess:check,onError:
function
(msg,obj){jAlert(msg,
"温馨提示"
,
function
(){obj.focus();})}});
$(
"#id_p_userName"
).formValidator({onFocus:
"用户名只能含有汉字,字母,数字或下划线"
})
.inputValidator({min:1,max:20,onErrorMin:
"对不起,请您输入用户名"
,onErrorMax:
"对不起,您输入的用户名超过了20个字"
});
$(
"#id_oldPassword"
).val(
""
).formValidator({empty:
true
})
.inputValidator({min:1,max:36,onErrorMin:
"对不起,请您输入原密码"
,onErrorMax:
"对不起,你输入的原密码超过了36个字符"
});
//第二个验证组
$.formValidator.initConfig({
validatorGroup
:
"2"
,formID:
"id_frm_userinfo"
,errorFocus:
false
,onSuccess:check,onError:
function
(msg,obj){jAlert(msg,
"温馨提示"
,
function
(){obj.focus();})}});
$(
"#id_p_tel"
).formValidator({
validatorGroup
:
"2"
}).inputValidator({max:20,onErrorMax:
"对不起,您输入的电话超过了20个字"
});
5. select 下拉框的验证
(
"#city"
).formValidator({
onShow:
"请选择你的城市"
,
onFocus:
"城市必须选择"
,
onCorrect:
"谢谢你的配合"
,
defaultValue:"sy"})
// 注意:默认选中一个, 但这个参数是 option 的value值 , object也可以当参数
.inputValidator({
min:1,
//
最少选择一个
onError:
"你是不是忘记选择城市了!"
})
.defaultPassed()
;
这里不太了解的参数是这两个:
defaultPassed
//默认校验通过,显示onCorrect状态
defaultValue
:
Object
|
String
,
//为input、select、textarea控件设置默认值
6. 比定义的min属性小时, 或者比max大时的提示 , 用 onErrorMin, onErrorMax
onErrorMin String
属性名: 比min属性小的提示。 当用户输入的值比min属性小的时候的错误提示
$("#nl").formValidator({
autoModify:true,
onShow:"请输入的年龄(1-99岁之间)",
onFocus:"只能输入1-99之间的数字哦",
onCorrect:"恭喜你,你输对了"
}).
inputValidator({
min:1,
max:99,
type:"value",
onErrorMin:"你输入的值必须大于等于1",
onError:"年龄必须在1-99之间,请确认"
});
onErrorMaxString
属性名:比max属性大的提示。 当用户输入的值比max属性大的时候的错误提示
7.组合验证,需要根据用户选择框体的不同进行不同的验证条件。
例一:座机和手机,至少选其一,可以不选。
$(
"#txtMobileTel,#txtContactTel"
).formValidator({ tipid:
"txtMobileTelTip"
, onshow:
"请填写任一种联系号码"
, onfocus:
"请输入移动电话或座机电话"
, oncorrect:
"输入正确!"
}).functionValidator({ fun: allEmpty });
function
allEmpty(val, elem) {
if
($(
"#txtMobileTel"
).val() ==
""
&& $(
"#txtContactTel"
).val() ==
""
) {
return
'请输入移动电话或座机电话'
;
}
else
{
if
($(
"#txtMobileTel"
).val() !=
""
&& $(
"#txtContactTel"
).val() !=
""
) {
if
(($(
"#txtMobileTel"
).val()).search(/^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/) != -1) {
if
(($(
"#txtContactTel"
).val()).search(/^(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/) != -1) {
return
true
}
else
{
return
"座机电话格式错误"
;
}
}
else
{
return
"移动电话格式错误"
;
}
}
else
{
if
($(
"#txtMobileTel"
).val() !=
""
) {
if
(($(
"#txtMobileTel"
).val()).search(/^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/) != -1) {
return
true
}
else
{
return
"移动电话格式错误"
;
}
}
if
($(
"#txtContactTel"
).val() !=
""
) {
if
(($(
"#txtContactTel"
).val()).search(/^(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/) != -1) {
return
true
}
else
{
return
"座机电话格式错误"
;
}
}
}
};
例二:地区级联下拉,当不存在二级地区的下拉解除校验。
$(
"#ddlOne"
).formValidator({
onshow:
"请选择省市"
,
onfocus:
"省市必须选择"
,
oncorrect:
"输入正确"
}).inputValidator({ min: 1, onerror:
"请选择有效的地区"
}).functionValidator({ fun: city });
$(
"#ddlTwo"
).formValidator({
onshow:
"请选择城市"
, onfocus:
"城市必须选择"
, oncorrect:
"输入正确"
}).inputValidator({ min: 1, onerror:
"请选择有效的地区"
});
function
city(val, elem) {
var
a =
""
;
$.getJSON(
"../Customer/Area.ashx?parentid="
+ $(
"#ddlOne option:selected"
).val(),
null
,
function
(json) {
if
(json[0].areacode ==
"0"
) {
$(
"#ddlTwo"
).attr(
"disabled"
,
true
).unFormValidator(
true
);
//解除校验
}
else
{
$(
"#ddlTwo"
).attr(
"disabled"
,
false
).unFormValidator(
false
);
//恢复校验
}
});
}
8.checkbox的验证
$(
":checkbox[name='inster']"
).formValidator({
validatorGroup:
"3"
,
onShow:
"请选择你的兴趣爱好(至少选择2个,最多选择3个)"
,
onFocus:
"你至少选择2个,最多选择3个"
,
onCorrect:
"恭喜你,你选对了"
,
defaultValue:[
"zq"
,
"pq"
]}).inputValidator({
min:2,
max:3,
onError:
"你选的个数不对(至少选择2个,最多选择3个)"
});
9.radio的验证
$(
":radio[name='xb_one']"
).formValidator({
onShow:
"请选择你的性别"
,
onFocus:
"没有第三种性别了,你选一个吧"
,
onCorrect:
"输入正确"
,
defaultValue:[
"1"
]}).inputValidator({
min:1,
max:1,
onError:
"性别忘记选了,请确认"
}).defaultPassed();
10.两个空间之间, 进行比较的验证, 例如密码两次确认等
支持: text(文本框)、file(文件选择器)、password(密码框)、textarea(多行编辑框)的比较
$(
"#password2"
).formValidator({
onShow:
"输再次输入密码"
,
onFocus:
"至少1个长度"
,
onCorrect:
"密码一致"
})
.inputValidator({min:1,onError:
"重复密码不能为空,请确认"
})
.compareValidator({
desID:"password1",
operateor:"=",
onError:
"2次密码不一致,请确认"
});
desID String
属性名:要比较控件的ID。 要跟源目标进行比较的目标ID
operateor String
(默认: "=") 属性名:比较符号。 一共有如下几种类型:=、!=、>、>=、<、<=
dataType String
(默认: "string") 属性名:数据类型。 目前只支持4种:"string"、"number","datetime","date"
11. 多个空间共用一个提示框
$("#Tel_country").formValidator({validatorGroup:"3",
tipID:"teltip",onShow:"请输入国家区号",onFocus:"国家区号2位数字",onCorrect:"恭喜你,你输对了",defaultValue:"86"});
$("#Tel_area").formValidator({validatorGroup:"3",
tipID:"teltip",onShow:"请输入地区区号",onFocus:"地区区号3位数字",onCorrect:"恭喜你,你输对了"});
$("#Tel_number").formValidator({validatorGroup:"3",
tipID:"teltip",onShow:"请输入电话号码",onFocus:"电话号码8位数字",onCorrect:"恭喜你,你输对了"});
$("#Tel_ext").formValidator({validatorGroup:"3"
,tipID:"teltip",onShow:"请输入分机号码",onFocus:"分机号码3位数字",onCorrect:"恭喜你,你输对了"});
下面常用的验证, 通过正则表达库:
$.formValidator.initConfig({ formID: "form1", onError: function () { alert("校验没有通过,具体错误请看错误提示") } });
$("#sfz").formValidator({ onShow: "请输入15或18位的身份证", onfocus: "输入15或18位的身份证", onCorrect: "输入正确" }).regexValidator({ regExp: "idcard", dataType:"enum", onError: "你输入的身份证格式不正确" });
$("#sfz1").formValidator({ onShow: "请输入15或18位的身份证", onfocus: "输入15或18位的身份证", onCorrect: "输入正确" }).functionValidator({ fun: isCardID });
$("#zs").formValidator({ onShow: "请输入整数", onCorrect: "谢谢你的合作,你的整数正确" }).regexValidator({ regExp: "intege", dataType: "enum", onError: "整数格式不正确"});
$("#zzs").formValidator({ onShow: "请输入正整数", onCorrect: "谢谢你的合作,你的正整数正确" }).regexValidator({ regExp: "intege1", dataType: "enum", onError: "正整数格式不正确" });
$("#fzs").formValidator({ onShow: "请输入负整数", onCorrect: "谢谢你的合作,你的负整数正确" }).regexValidator({ regExp: "intege2", dataType: "enum", onError: "负整数格式不正确" });
$("#sz").formValidator({ onShow: "请输入数字", onCorrect: "谢谢你的合作,你的数字正确" }).regexValidator({ regExp: "num", dataType: "enum", onError: "数字格式不正确" });
$("#zs1").formValidator({ onShow: "请输入正数", onCorrect: "谢谢你的合作,你的正数正确" }).regexValidator({ regExp: "num1", dataType: "enum", onError: "正数格式不正确"});
$("#fs").formValidator({ onShow: "请输入负数", onCorrect: "谢谢你的合作,你的负数正确" }).regexValidator({ regExp: "num2", dataType: "enum", onError: "负数格式不正确" });
$("#sj").formValidator({ onShow: "请输入你的手机号码", onfocus: "必须是13或15打头哦", onCorrect: "谢谢你的合作,你的手机号码正确" }).regexValidator({ regExp: "mobile", dataType: "enum", onError: "手机号码格式不正确" });
$("#email").formValidator({ onShow: "请输入你的email", onfocus: "请注意你输入的email格式,例如:wzmaodong@126.com", onCorrect: "谢谢你的合作,你的email正确"}).regexValidator({ regExp: "email", dataType: "enum", onError: "email格式不正确" });
$("#fds").formValidator({ onShow: "请输入浮点数", onCorrect: "谢谢你的合作,你的浮点数正确" }).regexValidator({ regExp: "decmal", dataType: "enum", onError: "浮点数格式不正确" });
$("#zfds").formValidator({ onShow: "请输入正浮点数", onCorrect: "谢谢你的合作,你的正浮点数正确" }).regexValidator({ regExp: "decmal1", dataType: "enum", onError: "正浮点数格式不正确" });
$("#ffds").formValidator({ onShow: "请输入负浮点数", onCorrect: "谢谢你的合作,你的负浮点数正确" }).regexValidator({ regExp: "decmal2", dataType: "enum", onError: "负浮点数格式不正确" });
$("#fffds").formValidator({ onShow: "请输入非负浮点数", onCorrect: "谢谢你的合作,你的非负浮点数正确" }).regexValidator({ regExp: "decmal4", dataType: "enum", onError:"非负浮点数格式不正确" });
$("#fzfds").formValidator({ onShow: "请输入非正浮点数", onCorrect: "谢谢你的合作,你的非正浮点数正确" }).regexValidator({ regExp: "decmal5", dataType: "enum", onError:"非正浮点数格式不正确" });
$("#ys").formValidator({ onShow: "请输入16进制颜色", onCorrect: "谢谢你的合作,你的16进制颜色正确" }).regexValidator({ regExp: "color", dataType: "enum", onError: "16进制颜色格式不正确" });
$("#yb").formValidator({ onShow: "请输入邮编", onfocus: "6位数字组成的哦", onCorrect: "谢谢你的合作,你的邮编正确" }).regexValidator({ regExp: "zipcode", dataType:"enum", onError: "邮编格式不正确" });
$("#ip4").formValidator({ onShow: "请输入ip4", onfocus: "例如:172.16.201.18", onCorrect: "谢谢你的合作,你的ip4正确" }).regexValidator({ regExp: "ip4", dataType:"enum", onError: "ip4格式不正确" });
$("#fk").formValidator({ onShow: "请输入非空字符", onCorrect: "谢谢你的合作,你的非空字符正确" }).regexValidator({ regExp: "notempty", dataType: "enum", onError: "非空字符格式不正确" });
$("#tp").formValidator({ onShow: "请输入图片名", onCorrect: "谢谢你的合作,你的图片名正确" }).regexValidator({ regExp: "picture", dataType: "enum", onError: "图片名格式不正确" });
$("#rar").formValidator({ onShow: "请输入压缩文件名", onCorrect: "谢谢你的合作,你的压缩文件名正确" }).regexValidator({ regExp: "rar", dataType: "enum", onError: "压缩文件名格式不正确" });
$("#qq").formValidator({ onShow: "请输入QQ号码", onCorrect: "谢谢你的合作,你的QQ号码正确" }).regexValidator({ regExp: "qq", dataType: "enum", onError: "QQ号码格式不正确"});
$("#dh").formValidator({ onShow: "请输入国内电话", onfocus: "例如:0577-88888888或省略区号88888888", onCorrect: "谢谢你的合作,你的国内电话正确" }).regexValidator({ regExp: "tel", dataType: "enum", onError: "国内电话格式不正确" });
$("#yhm").formValidator({ onShow: "请输入用户名", onCorrect: "谢谢你的合作,你的用户名正确" }).regexValidator({ regExp: "username", dataType: "enum", onError: "用户名格式不正确" });
$("#zm").formValidator({ onShow: "请输入字母", onCorrect: "谢谢你的合作,你的字母正确" }).regexValidator({ regExp: "letter", dataType: "enum", onError: "字母格式不正确"});
$("#dxzm").formValidator({ onShow: "请输入大写字母", onCorrect: "谢谢你的合作,你的大写字母正确" }).regexValidator({ regExp: "letter_u", dataType: "enum", onError: "大写字母格式不正确" });
$("#xxzm").formValidator({ onShow: "请输入小写字母", onCorrect: "谢谢你的合作,你的小写字母正确" }).regexValidator({ regExp: "letter_l", dataType: "enum", onError: "小写字母格式不正确" });
$("#sfz").formValidator({ onShow: "请输入身份证", onCorrect: "谢谢你的合作,你的身份证正确" }).regexValidator({ regExp: "idcard", dataType: "enum", onError: "身份证格式不正确" });
$("#name").formValidator({ onShow: "请输入姓名!", onFocus: "输入一个到十个字符", onCorrect: "输入正确,谢谢您的合作!" }).inputValidator({ min: 1, max: 20, onError: "输入长度,不对!" });
$("#timelong").formValidator({ onShow: "请输入路演时长!", onFocus: "输入格式为正整数!", onCorrect: "输入正确,谢谢您的合作!" }).regexValidator({ regExp:"intege1",dataType: "enum", onError: "您输入的时长格式不正确!" });
$("#address").formValidator({ onShow: "请输入路演平台名称!", onFocus: "输入一个到五十个字符", onCorrect: "输入正确,谢谢您的合作!" }).inputValidator({ min: 1, max: 50, onError: "输入长度,不对!" });
$("#urladdress").formValidator({ onShow: "请输入路演链接地址!", onFocus: "输入格式:http://www.baidu.com", onCorrect: "输入正确,谢谢您的合作!" }).regexValidator({ regExp:"^(http|https|ftp)\://([a-zA-Z0-9\.\-]+(\:[a-zA-Z0-9\.&%\$\-]+)*@)*((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|localhost|([a-zA-Z0-9\-]+\.)*[a-zA-Z0-9\-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(\:[0-9]+)*(/($|[a-zA-Z0-9\.\,\?\'\\\+&%\$#\=~_\-]+))*$", onError: "输入格式不正确!" });
$("#time").formValidator({ onCorrect: "格式正确" }).functionValidator({fun:isDateTime, onError: "输入格式,不对!" });
$("#txtcontent").formValidator({ onShow: "请输入专家简介!", onFocus: "输入一个到一百个字符", onCorrect: "输入正确,谢谢您的合作!" }).inputValidator({ min: 1, max: 100, onError: "输入长度,不对!" });function isCKempty() {
// 获取富文本编辑器的内容
var content = CKEDITOR.instances['remark'].getData();
if (content) {
// 有内容返回
if (content.length > 0 && content.length <= 10) {
// 当然, 富文本这个长度不能这么写的, 富文本里字符计算单位肯定不是1个字一个字算,还有标签等等
return true;
} else {
return '输入长度不正确';
}
} else {
// 富文本编辑器内容为空
return '请输入个人简介';
}
}
// 下面就是关键了, formValidator调用这个外部函数即可,这里onFocus是不好使的
$("#remark").formValidator({ onShow: "请输入个人简介!",
onFocus: "输入1到100个字符",
onCorrect: "输入正确,谢谢您的合作!" }).functionValidator({fun:isCKempty});
// 另外, 下面是用户名中包含了敏感字的一个例子
("#username").formValidator({onShow:"用户名至少5个字符,最多10个字符"})
.inputValidator({min:5,max:10,onError:"你输入的用户名非法,请确认"})
.functionValidator({fun:function(val){
if(val == "admin"){
return "该用户名包含保留关键字"}
}});
// ajax校验用户名是否存在
$("#userName").formValidator({
onShowText:"在这里输入用户名", // 4.1.1 新增
onShow:"请输入用户名",
onFocus:"用户名至少4个字符,最多10个字符,中文算(2个?看编码)",
onCorrect:"该用户名可以注册"
}).inputValidator({
type:"size", // 默认即是"size":表示字符长度/(checkbox/radio)选择的个数
min:4,max:10,
onError:"你输入的用户名非法,请确认"
}).ajaxValidator({
type : "post",
cache : false,
url : "checkUserName.html",
datatype : "json",
addidvalue : true,
data : "act=new_vname",
success : function(data){
var obj = JSON.parse(data); // 必须解析json才能用
if(obj.success){
return true;
}else{
return obj.msg;
}
},
buttons: $("#regBtn"),
error: function(){alert("服务器忙,请重试");},
onerror : "您注册的昵称已存在",
onwait : "正在对昵称进行校验..."
});
// 如果想带其他参数, 请在其他控件校验函数中加 ajax: true