EasyUI表单验证,自定义插件验证,自定义js插件验证,远程验证,常见手机号,中英文,qq等验证规则验证
- {
- field : 'startPort',
- title : "起始端口",
- editor: "text",
- width : 50,
- editor: {
- type: 'SuperValidatebox',
- options: {
- required: true,
- validType: ['integer','length[0,5]']
- }
- },
- 自从1.3.2版本开始,validatebox自身已经支持多重校验了,例如:
- input class="easyui-validatebox" data-options="required:true,validType:['email','length[0,20]']">
{ field : 'startPort', title : "起始端口", editor: "text", width : 50, editor: { type: 'SuperValidatebox', options: { required: true, validType: ['integer','length[0,5]'] } }, 自从1.3.2版本开始,validatebox自身已经支持多重校验了,例如: input class="easyui-validatebox" data-options="required:true,validType:['email','length[0,20]']">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <script src="easyui1.2.4/jquery-1.6.min.js" type="text/javascript"></script>
- <script src="easyui1.2.4/jquery.easyui.min.js" type="text/javascript"></script>
- <!--自定义验证-->
- <script src="easyui1.2.4/validator.js" type="text/javascript"></script>
- <link href="easyui1.2.4/themes/default/easyui.css" rel="stylesheet" type="text/css" />
- <script>
- $(function () {
- //设置text需要验证
- $('input[type=text]').validatebox();
- })
- </script>
- </head>
- <body>
- 邮箱验证:<input type="text" validtype="email" required="true" missingMessage="不能为空" invalidMessage="邮箱格式不正确" /><br />
- 网址验证:<input type="text" validtype="url" invalidMessage="url格式不正确[http://www.example.com]" /><br />
- 长度验证:<input type="text" validtype="length[8,20]" invalidMessage="有效长度8-20" /><br />
- 手机验证:<input type="text" validtype="mobile" /><br />
- 邮编验证:<input type="text" validtype="zipcode" /><br />
- 账号验证:<input type="text" validtype="account[8,20]" /><br />
- 汉子验证:<input type="text" validtype="CHS" /><br />
- 远程验证:<input type="text" validtype="remote['checkname.aspx','name']" invalidMessage="用户名已存在"/>
- </body>
- </html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="easyui1.2.4/jquery-1.6.min.js" type="text/javascript"></script>
<script src="easyui1.2.4/jquery.easyui.min.js" type="text/javascript"></script>
<!--自定义验证-->
<script src="easyui1.2.4/validator.js" type="text/javascript"></script>
<link href="easyui1.2.4/themes/default/easyui.css" rel="stylesheet" type="text/css" />
<script>
$(function () {
//设置text需要验证
$('input[type=text]').validatebox();
})
</script>
</head>
<body>
邮箱验证:<input type="text" validtype="email" required="true" missingMessage="不能为空" invalidMessage="邮箱格式不正确" /><br />
网址验证:<input type="text" validtype="url" invalidMessage="url格式不正确[http://www.example.com]" /><br />
长度验证:<input type="text" validtype="length[8,20]" invalidMessage="有效长度8-20" /><br />
手机验证:<input type="text" validtype="mobile" /><br />
邮编验证:<input type="text" validtype="zipcode" /><br />
账号验证:<input type="text" validtype="account[8,20]" /><br />
汉子验证:<input type="text" validtype="CHS" /><br />
远程验证:<input type="text" validtype="remote['checkname.aspx','name']" invalidMessage="用户名已存在"/>
</body>
</html>
自定义验证:
- //扩展easyui表单的验证
- $.extend($.fn.validatebox.defaults.rules, {
- //验证汉子
- CHS: {
- validator: function (value) {
- return /^[\u0391-\uFFE5]+$/.test(value);
- },
- message: '只能输入汉字'
- },
- //移动手机号码验证
- mobile: {//value值为文本框中的值
- validator: function (value) {
- var reg = /^[||||]\d{}$/;
- return reg.test(value);
- },
- message: '输入手机号码格式不准确.'
- },
- //国内邮编验证
- zipcode: {
- validator: function (value) {
- var reg = /^[-]\d{}$/;
- return reg.test(value);
- },
- message: '邮编必须是非0开始的6位数字.'
- },
- //用户账号验证(只能包括 _ 数字 字母)
- account: {//param的值为[]中值
- validator: function (value, param) {
- if (value.length < param[] || value.length > param[]) {
- $.fn.validatebox.defaults.rules.account.message = '用户名长度必须在' + param[] + '至' + param[] + '范围';
- return false;
- } else {
- if (!/^[\w]+$/.test(value)) {
- $.fn.validatebox.defaults.rules.account.message = '用户名只能数字、字母、下划线组成.';
- return false;
- } else {
- return true;
- }
- }
- }, message: ''
- }
- })
//扩展easyui表单的验证
$.extend($.fn.validatebox.defaults.rules, {
//验证汉子
CHS: {
validator: function (value) {
return /^[\u0391-\uFFE5]+$/.test(value);
},
message: '只能输入汉字'
},
//移动手机号码验证
mobile: {//value值为文本框中的值
validator: function (value) {
var reg = /^1[3|4|5|8|9]\d{9}$/;
return reg.test(value);
},
message: '输入手机号码格式不准确.'
},
//国内邮编验证
zipcode: {
validator: function (value) {
var reg = /^[1-9]\d{5}$/;
return reg.test(value);
},
message: '邮编必须是非0开始的6位数字.'
},
//用户账号验证(只能包括 _ 数字 字母)
account: {//param的值为[]中值
validator: function (value, param) {
if (value.length < param[0] || value.length > param[1]) {
$.fn.validatebox.defaults.rules.account.message = '用户名长度必须在' + param[0] + '至' + param[1] + '范围';
return false;
} else {
if (!/^[\w]+$/.test(value)) {
$.fn.validatebox.defaults.rules.account.message = '用户名只能数字、字母、下划线组成.';
return false;
} else {
return true;
}
}
}, message: ''
}
})
- $.extend($.fn.validatebox.defaults.rules, {
- checkWSDL: {
- validator: function(value,param){
- var reg = "^(http://|([0-9]{1,3}[.]{1}[0-9]{1,3}[.]{1}[0-9]{1,3}[.]{1}[0-9]{1,3}:[0-9]{1,4}))[/a-zA-Z0-9._%&:=(),?+]*[?]{1}wsdl$";
- return reg.test(value);
- },
- message: '请输入合法的WSDL地址'
- },
- checkIp : {// 验证IP地址
- validator : function(value) {
- var reg = /^((1?\d?\d|(2([0-4]\d|5[0-5])))\.){3}(1?\d?\d|(2([0-4]\d|5[0-5])))$/ ;
- return reg.test(value);
- },
- message : 'IP地址格式不正确'
- }
- });
$.extend($.fn.validatebox.defaults.rules, {
checkWSDL: {
validator: function(value,param){
var reg = "^(http://|([0-9]{1,3}[.]{1}[0-9]{1,3}[.]{1}[0-9]{1,3}[.]{1}[0-9]{1,3}:[0-9]{1,4}))[/a-zA-Z0-9._%&:=(),?+]*[?]{1}wsdl$";
return reg.test(value);
},
message: '请输入合法的WSDL地址'
},
checkIp : {// 验证IP地址
validator : function(value) {
var reg = /^((1?\d?\d|(2([0-4]\d|5[0-5])))\.){3}(1?\d?\d|(2([0-4]\d|5[0-5])))$/ ;
return reg.test(value);
},
message : 'IP地址格式不正确'
}
});
=================================
- $.extend($.fn.validatebox.defaults.rules, {
- selectValueRequired: {
- validator: function(value,param){
- if (value == "" || value.indexOf('请选择') >= ) {
- return false;
- }else {
- return true;
- }
- },
- message: '该下拉框为必选项'
- }
- });
$.extend($.fn.validatebox.defaults.rules, {
selectValueRequired: {
validator: function(value,param){
if (value == "" || value.indexOf('请选择') >= 0) {
return false;
}else {
return true;
}
},
message: '该下拉框为必选项'
}
});
- <select id="serviceType" name="serviceType" style="width: 150px" class="easyui-combobox" required="true" validType="selectValueRequired"></select>
<select id="serviceType" name="serviceType" style="width: 150px" class="easyui-combobox" required="true" validType="selectValueRequired"></select>
===================================
Remote:远程验证
Easyui validatebox修改
http://blog.csdn.net/qlh2863/article/details/7269689
http://www.cnblogs.com/qiancheng509/archive/2012/11/23/2783700.html
http://blog.csdn.net/dyllove98/article/details/8866711
自己代码:
- equalTo : {
- validator : function(value, param) {
- return $("#" + param[]).val() == value;
- },
- message : '两次输入的密码不一致!'
- },
- checkPassword :{
- validator : function(value,param){
- var sysUser = {};
- var flag ;
- sysUser.userPassword = value;
- $.ajax({
- url : root + 'login/checkPwd.do',
- type : 'POST',
- timeout : ,
- data:sysUser,
- async: false,
- success : function(data, textStatus, jqXHR) {
- if (data == "0") {
- flag = true;
- }else{
- flag = false;
- }
- }
- });
- if(flag){
- $("#userPassword").removeClass('validatebox-invalid');
- }
- return flag;
- },
- message: '原始密码输入错误!'
- }
equalTo : {
validator : function(value, param) {
return $("#" + param[0]).val() == value;
},
message : '两次输入的密码不一致!'
},
checkPassword :{
validator : function(value,param){
var sysUser = {};
var flag ;
sysUser.userPassword = value;
$.ajax({
url : root + 'login/checkPwd.do',
type : 'POST',
timeout : 60000,
data:sysUser,
async: false,
success : function(data, textStatus, jqXHR) {
if (data == "0") {
flag = true;
}else{
flag = false;
}
}
});
if(flag){
$("#userPassword").removeClass('validatebox-invalid');
}
return flag;
},
message: '原始密码输入错误!'
}
- <table cellpadding="0" align="center" style="width: 98%; height: 98%; text-align: right;">
- <tr>
- <td>请输入原密码:</td>
- <td style="text-align: left; padding-left: 10px;"><input type="password" id="userPassword" name="userPassword" class="easyui-validatebox"
- data-options="required:true" validType="checkPassword"/>
- </td>
- </tr>
- <tr>
- <td>请输入新密码:</td>
- <td style="text-align: left; padding-left: 10px;"><input type="password" id="newPassword" name="newPassword" class="easyui-validatebox"
- data-options="required:true" />
- </td>
- </tr>
- <tr>
- <td>请确认输入新密码:</td>
- <td style="text-align: left; padding-left: 10px;"><input type="password" id="reNewPassword" name="reNewPassword"
- class="easyui-validatebox" data-options="required:true" validType="equalTo['newPassword']" />
- </td>
- </tr>
- </table>
<table cellpadding="0" align="center" style="width: 98%; height: 98%; text-align: right;"> <tr> <td>请输入原密码:</td> <td style="text-align: left; padding-left: 10px;"><input type="password" id="userPassword" name="userPassword" class="easyui-validatebox" data-options="required:true" validType="checkPassword"/> </td> </tr> <tr> <td>请输入新密码:</td> <td style="text-align: left; padding-left: 10px;"><input type="password" id="newPassword" name="newPassword" class="easyui-validatebox" data-options="required:true" /> </td> </tr> <tr> <td>请确认输入新密码:</td> <td style="text-align: left; padding-left: 10px;"><input type="password" id="reNewPassword" name="reNewPassword" class="easyui-validatebox" data-options="required:true" validType="equalTo['newPassword']" /> </td> </tr> </table>
====================================================================================
- /**
- * 扩展easyui的validator插件rules,支持更多类型验证
- */
- $.extend($.fn.validatebox.defaults.rules, {
- minLength : { // 判断最小长度
- validator : function(value, param) {
- return value.length >= param[0];
- },
- message : '最少输入 {0} 个字符'
- },
- length : { // 长度
- validator : function(value, param) {
- var len = $.trim(value).length;
- return len >= param[0] && len <= param[1];
- },
- message : "输入内容长度必须介于{0}和{1}之间"
- },
- phone : {// 验证电话号码
- validator : function(value) {
- return /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i.test(value);
- },
- message : '格式不正确,请使用下面格式:020-88888888'
- },
- mobile : {// 验证手机号码
- validator : function(value) {
- return /^(13|15|18)\d{9}$/i.test(value);
- },
- message : '手机号码格式不正确'
- },
- phoneAndMobile : {// 电话号码或手机号码
- validator : function(value) {
- return /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i.test(value) || /^(13|15|18)\d{9}$/i.test(value);
- },
- message : '电话号码或手机号码格式不正确'
- },
- idcard : {// 验证身份证
- validator : function(value) {
- return /^\d{15}(\d{2}[A-Za-z0-9])?$/i.test(value) || /^\d{18}(\d{2}[A-Za-z0-9])?$/i.test(value);
- },
- message : '身份证号码格式不正确'
- },
- intOrFloat : {// 验证整数或小数
- validator : function(value) {
- return /^\d+(\.\d+)?$/i.test(value);
- },
- message : '请输入数字,并确保格式正确'
- },
- currency : {// 验证货币
- validator : function(value) {
- return /^\d+(\.\d+)?$/i.test(value);
- },
- message : '货币格式不正确'
- },
- qq : {// 验证QQ,从10000开始
- validator : function(value) {
- return /^[1-9]\d{4,9}$/i.test(value);
- },
- message : 'QQ号码格式不正确'
- },
- integer : {// 验证整数
- validator : function(value) {
- return /^[+]?[1-9]+\d*$/i.test(value);
- },
- message : '请输入整数'
- },
- chinese : {// 验证中文
- validator : function(value) {
- return /^[\u0391-\uFFE5]+$/i.test(value);
- },
- message : '请输入中文'
- },
- chineseAndLength : {// 验证中文及长度
- validator : function(value) {
- var len = $.trim(value).length;
- if (len >= param[0] && len <= param[1]) {
- return /^[\u0391-\uFFE5]+$/i.test(value);
- }
- },
- message : '请输入中文'
- },
- english : {// 验证英语
- validator : function(value) {
- return /^[A-Za-z]+$/i.test(value);
- },
- message : '请输入英文'
- },
- englishAndLength : {// 验证英语及长度
- validator : function(value, param) {
- var len = $.trim(value).length;
- if (len >= param[0] && len <= param[1]) {
- return /^[A-Za-z]+$/i.test(value);
- }
- },
- message : '请输入英文'
- },
- englishUpperCase : {// 验证英语大写
- validator : function(value) {
- return /^[A-Z]+$/.test(value);
- },
- message : '请输入大写英文'
- },
- unnormal : {// 验证是否包含空格和非法字符
- validator : function(value) {
- return /.+/i.test(value);
- },
- message : '输入值不能为空和包含其他非法字符'
- },
- username : {// 验证用户名
- validator : function(value) {
- return /^[a-zA-Z][a-zA-Z0-9_]{5,15}$/i.test(value);
- },
- message : '用户名不合法(字母开头,允许6-16字节,允许字母数字下划线)'
- },
- faxno : {// 验证传真
- validator : function(value) {
- return /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i.test(value);
- },
- message : '传真号码不正确'
- },
- zip : {// 验证邮政编码
- validator : function(value) {
- return /^[1-9]\d{5}$/i.test(value);
- },
- message : '邮政编码格式不正确'
- },
- ip : {// 验证IP地址
- validator : function(value) {
- return /d+.d+.d+.d+/i.test(value);
- },
- message : 'IP地址格式不正确'
- },
- name : {// 验证姓名,可以是中文或英文
- validator : function(value) {
- return /^[\u0391-\uFFE5]+$/i.test(value) | /^\w+[\w\s]+\w+$/i.test(value);
- },
- message : '请输入姓名'
- },
- engOrChinese : {// 可以是中文或英文
- validator : function(value) {
- return /^[\u0391-\uFFE5]+$/i.test(value) | /^\w+[\w\s]+\w+$/i.test(value);
- },
- message : '请输入中文'
- },
- engOrChineseAndLength : {// 可以是中文或英文
- validator : function(value) {
- var len = $.trim(value).length;
- if (len >= param[0] && len <= param[1]) {
- return /^[\u0391-\uFFE5]+$/i.test(value) | /^\w+[\w\s]+\w+$/i.test(value);
- }
- },
- message : '请输入中文或英文'
- },
- carNo : {
- validator : function(value) {
- return /^[\u4E00-\u9FA5][\da-zA-Z]{6}$/.test(value);
- },
- message : '车牌号码无效(例:粤B12350)'
- },
- carenergin : {
- validator : function(value) {
- return /^[a-zA-Z0-9]{16}$/.test(value);
- },
- message : '发动机型号无效(例:FG6H012345654584)'
- },
- same : {
- validator : function(value, param) {
- if ($("#" + param[0]).val() != "" && value != "") {
- return $("#" + param[0]).val() == value;
- } else {
- return true;
- }
- },
- message : '两次输入的密码不一致!'
- }
- });
- /**
- * 扩展easyui validatebox的两个方法.移除验证和还原验证
- */
- $.extend($.fn.validatebox.methods, {
- remove : function(jq, newposition) {
- return jq.each(function() {
- $(this).removeClass("validatebox-text validatebox-invalid").unbind('focus.validatebox').unbind('blur.validatebox');
- // remove tip
- // $(this).validatebox('hideTip', this);
- });
- },
- reduce : function(jq, newposition) {
- return jq.each(function() {
- var opt = $(this).data().validatebox.options;
- $(this).addClass("validatebox-text").validatebox(opt);
- // $(this).validatebox('validateTip', this);
- });
- },
- validateTip : function(jq) {
- jq = jq[0];
- var opts = $.data(jq, "validatebox").options;
- var tip = $.data(jq, "validatebox").tip;
- var box = $(jq);
- var value = box.val();
- function setTipMessage(msg) {
- $.data(jq, "validatebox").message = msg;
- };
- var disabled = box.attr("disabled");
- if (disabled == true || disabled == "true") {
- return true;
- }
- if (opts.required) {
- if (value == "") {
- box.addClass("validatebox-invalid");
- setTipMessage(opts.missingMessage);
- $(jq).validatebox('showTip', jq);
- return false;
- }
- }
- if (opts.validType) {
- var result = /([a-zA-Z_]+)(.*)/.exec(opts.validType);
- var rule = opts.rules[result[1]];
- if (value && rule) {
- var param = eval(result[2]);
- if (!rule["validator"](value, param)) {
- box.addClass("validatebox-invalid");
- var message = rule["message"];
- if (param) {
- for (var i = 0; i < param.length; i++) {
- message = message.replace(new RegExp("\\{" + i + "\\}", "g"), param[i]);
- }
- }
- setTipMessage(opts.invalidMessage || message);
- $(jq).validatebox('showTip', jq);
- return false;
- }
- }
- }
- box.removeClass("validatebox-invalid");
- $(jq).validatebox('hideTip', jq);
- return true;
- },
- showTip : function(jq) {
- jq = jq[0];
- var box = $(jq);
- var msg = $.data(jq, "validatebox").message
- var tip = $.data(jq, "validatebox").tip;
- if (!tip) {
- tip = $("<div class=\"validatebox-tip\">" + "<span class=\"validatebox-tip-content\">" + "</span>" + "<span class=\"validatebox-tip-pointer\">" + "</span>" + "</div>").appendTo("body");
- $.data(jq, "validatebox").tip = tip;
- }
- tip.find(".validatebox-tip-content").html(msg);
- tip.css({
- display : "block",
- left : box.offset().left + box.outerWidth(),
- top : box.offset().top
- });
- },
- hideTip : function(jq) {
- jq = jq[0];
- var tip = $.data(jq, "validatebox").tip;
- if (tip) {
- tip.remove;
- $.data(jq, "validatebox").tip = null;
- }
- }
- });
/**
* 扩展easyui的validator插件rules,支持更多类型验证
*/
$.extend($.fn.validatebox.defaults.rules, {
minLength : { // 判断最小长度
validator : function(value, param) {
return value.length >= param[0];
},
message : '最少输入 {0} 个字符'
},
length : { // 长度
validator : function(value, param) {
var len = $.trim(value).length;
return len >= param[0] && len <= param[1];
},
message : "输入内容长度必须介于{0}和{1}之间"
},
phone : {// 验证电话号码
validator : function(value) {
return /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i.test(value);
},
message : '格式不正确,请使用下面格式:020-88888888'
},
mobile : {// 验证手机号码
validator : function(value) {
return /^(13|15|18)\d{9}$/i.test(value);
},
message : '手机号码格式不正确'
},
phoneAndMobile : {// 电话号码或手机号码
validator : function(value) {
return /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i.test(value) || /^(13|15|18)\d{9}$/i.test(value);
},
message : '电话号码或手机号码格式不正确'
},
idcard : {// 验证身份证
validator : function(value) {
return /^\d{15}(\d{2}[A-Za-z0-9])?$/i.test(value) || /^\d{18}(\d{2}[A-Za-z0-9])?$/i.test(value);
},
message : '身份证号码格式不正确'
},
intOrFloat : {// 验证整数或小数
validator : function(value) {
return /^\d+(\.\d+)?$/i.test(value);
},
message : '请输入数字,并确保格式正确'
},
currency : {// 验证货币
validator : function(value) {
return /^\d+(\.\d+)?$/i.test(value);
},
message : '货币格式不正确'
},
qq : {// 验证QQ,从10000开始
validator : function(value) {
return /^[1-9]\d{4,9}$/i.test(value);
},
message : 'QQ号码格式不正确'
},
integer : {// 验证整数
validator : function(value) {
return /^[+]?[1-9]+\d*$/i.test(value);
},
message : '请输入整数'
},
chinese : {// 验证中文
validator : function(value) {
return /^[\u0391-\uFFE5]+$/i.test(value);
},
message : '请输入中文'
},
chineseAndLength : {// 验证中文及长度
validator : function(value) {
var len = $.trim(value).length;
if (len >= param[0] && len <= param[1]) {
return /^[\u0391-\uFFE5]+$/i.test(value);
}
},
message : '请输入中文'
},
english : {// 验证英语
validator : function(value) {
return /^[A-Za-z]+$/i.test(value);
},
message : '请输入英文'
},
englishAndLength : {// 验证英语及长度
validator : function(value, param) {
var len = $.trim(value).length;
if (len >= param[0] && len <= param[1]) {
return /^[A-Za-z]+$/i.test(value);
}
},
message : '请输入英文'
},
englishUpperCase : {// 验证英语大写
validator : function(value) {
return /^[A-Z]+$/.test(value);
},
message : '请输入大写英文'
},
unnormal : {// 验证是否包含空格和非法字符
validator : function(value) {
return /.+/i.test(value);
},
message : '输入值不能为空和包含其他非法字符'
},
username : {// 验证用户名
validator : function(value) {
return /^[a-zA-Z][a-zA-Z0-9_]{5,15}$/i.test(value);
},
message : '用户名不合法(字母开头,允许6-16字节,允许字母数字下划线)'
},
faxno : {// 验证传真
validator : function(value) {
return /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i.test(value);
},
message : '传真号码不正确'
},
zip : {// 验证邮政编码
validator : function(value) {
return /^[1-9]\d{5}$/i.test(value);
},
message : '邮政编码格式不正确'
},
ip : {// 验证IP地址
validator : function(value) {
return /d+.d+.d+.d+/i.test(value);
},
message : 'IP地址格式不正确'
},
name : {// 验证姓名,可以是中文或英文
validator : function(value) {
return /^[\u0391-\uFFE5]+$/i.test(value) | /^\w+[\w\s]+\w+$/i.test(value);
},
message : '请输入姓名'
},
engOrChinese : {// 可以是中文或英文
validator : function(value) {
return /^[\u0391-\uFFE5]+$/i.test(value) | /^\w+[\w\s]+\w+$/i.test(value);
},
message : '请输入中文'
},
engOrChineseAndLength : {// 可以是中文或英文
validator : function(value) {
var len = $.trim(value).length;
if (len >= param[0] && len <= param[1]) {
return /^[\u0391-\uFFE5]+$/i.test(value) | /^\w+[\w\s]+\w+$/i.test(value);
}
},
message : '请输入中文或英文'
},
carNo : {
validator : function(value) {
return /^[\u4E00-\u9FA5][\da-zA-Z]{6}$/.test(value);
},
message : '车牌号码无效(例:粤B12350)'
},
carenergin : {
validator : function(value) {
return /^[a-zA-Z0-9]{16}$/.test(value);
},
message : '发动机型号无效(例:FG6H012345654584)'
},
same : {
validator : function(value, param) {
if ($("#" + param[0]).val() != "" && value != "") {
return $("#" + param[0]).val() == value;
} else {
return true;
}
},
message : '两次输入的密码不一致!'
}
});
/**
* 扩展easyui validatebox的两个方法.移除验证和还原验证
*/
$.extend($.fn.validatebox.methods, {
remove : function(jq, newposition) {
return jq.each(function() {
$(this).removeClass("validatebox-text validatebox-invalid").unbind('focus.validatebox').unbind('blur.validatebox');
// remove tip
// $(this).validatebox('hideTip', this);
});
},
reduce : function(jq, newposition) {
return jq.each(function() {
var opt = $(this).data().validatebox.options;
$(this).addClass("validatebox-text").validatebox(opt);
// $(this).validatebox('validateTip', this);
});
},
validateTip : function(jq) {
jq = jq[0];
var opts = $.data(jq, "validatebox").options;
var tip = $.data(jq, "validatebox").tip;
var box = $(jq);
var value = box.val();
function setTipMessage(msg) {
$.data(jq, "validatebox").message = msg;
};
var disabled = box.attr("disabled");
if (disabled == true || disabled == "true") {
return true;
}
if (opts.required) {
if (value == "") {
box.addClass("validatebox-invalid");
setTipMessage(opts.missingMessage);
$(jq).validatebox('showTip', jq);
return false;
}
}
if (opts.validType) {
var result = /([a-zA-Z_]+)(.*)/.exec(opts.validType);
var rule = opts.rules[result[1]];
if (value && rule) {
var param = eval(result[2]);
if (!rule["validator"](value, param)) {
box.addClass("validatebox-invalid");
var message = rule["message"];
if (param) {
for (var i = 0; i < param.length; i++) {
message = message.replace(new RegExp("\\{" + i + "\\}", "g"), param[i]);
}
}
setTipMessage(opts.invalidMessage || message);
$(jq).validatebox('showTip', jq);
return false;
}
}
}
box.removeClass("validatebox-invalid");
$(jq).validatebox('hideTip', jq);
return true;
},
showTip : function(jq) {
jq = jq[0];
var box = $(jq);
var msg = $.data(jq, "validatebox").message
var tip = $.data(jq, "validatebox").tip;
if (!tip) {
tip = $("<div class=\"validatebox-tip\">" + "<span class=\"validatebox-tip-content\">" + "</span>" + "<span class=\"validatebox-tip-pointer\">" + "</span>" + "</div>").appendTo("body");
$.data(jq, "validatebox").tip = tip;
}
tip.find(".validatebox-tip-content").html(msg);
tip.css({
display : "block",
left : box.offset().left + box.outerWidth(),
top : box.offset().top
});
},
hideTip : function(jq) {
jq = jq[0];
var tip = $.data(jq, "validatebox").tip;
if (tip) {
tip.remove;
$.data(jq, "validatebox").tip = null;
}
}
});
在使用带 validatebox 的输入框,第一次没输入出现如图验证提示信息
但是点击窗口取消后,再次打开窗口后输入框仍然带有验证信息,查看APi也没有找到解决的方法于是分析了一下页面代码,采用下面处理成功,
$(".validatebox-tip").remove();
$(".validatebox-invalid").removeClass("validatebox-invalid");
另外,有一篇文章
easyui验证的删除和恢复 地址http://liuna718-163-com.iteye.com/blog/1726145 供参考
引用一下他的代码:
- $.extend($.fn.validatebox.methods, {
- remove: function(jq, newposition){
- return jq.each(function(){
- $(this).removeClass("validatebox-text validatebox-invalid").unbind('focus').unbind('blur');
- });
- },
- reduce: function(jq, newposition){
- return jq.each(function(){
- var opt = $(this).data().validatebox.options;
- $(this).addClass("validatebox-text").validatebox(opt);
- });
- }
- });
- //使用
- $('#id').validatebox('remove'); //删除
- $('#id').validatebox('reduce'); //恢复
$.extend($.fn.validatebox.methods, {
remove: function(jq, newposition){
return jq.each(function(){
$(this).removeClass("validatebox-text validatebox-invalid").unbind('focus').unbind('blur');
});
},
reduce: function(jq, newposition){
return jq.each(function(){
var opt = $(this).data().validatebox.options;
$(this).addClass("validatebox-text").validatebox(opt);
});
}
});
//使用
$('#id').validatebox('remove'); //删除
$('#id').validatebox('reduce'); //恢复
设置Datagrid中Editor中验证的清除:
- $.extend($.fn.datagrid.methods, {
- setDColumnTitle: function(jq, option){
- if(option.field){
- return jq.each(function(){
- var $panel = $(this).datagrid("getPanel");
- var $field = $('td[field='+option.field+']',$panel);
- if($field.length){
- var $span = $("span",$field).eq(0);
- var $span1 = $("span",$field).eq(1);
- $span.html(option.title);
- $span1.html(option.title);
- }
- });
- }
- return jq;
- } ,
- removeRequired: function(jq, field){
- if(field){
- return jq.each(function(){
- var $panel = $(this).datagrid("getPanel");
- var $field = $('td[field='+field+']',$panel);
- if($field.length){
- var $input = $("input",$field);
- $input.removeClass("validatebox-text validatebox-invalid").unbind('focus').unbind('blur');
- }
- });
- }
- return jq;
- },
- addRequired: function(jq, field){
- if(field){
- return jq.each(function(){
- var $panel = $(this).datagrid("getPanel");
- var $field = $('td[field='+field+']',$panel);
- if($field.length){
- var $input = $("input",$field);
- $input.addClass("validatebox-text validatebox-invalid").unbind('focus').unbind('blur');
- }
- });
- }
- }
- });
- 使用:
- $obj.datagrid('removeRequired','startPort');
- $obj.datagrid('addRequired','startPort');
EasyUI表单验证,自定义插件验证,自定义js插件验证,远程验证,常见手机号,中英文,qq等验证规则验证的更多相关文章
- 雷林鹏分享:jQuery EasyUI 表单 - 表单验证
jQuery EasyUI 表单 - 表单验证 本教程将向您展示如何验证一个表单.easyui 框架提供一个 validatebox 插件来验证一个表单.在本教程中,我们将创建一个联系表单,并应用 v ...
- easyUI表单验证
1.重写easyui中的 $.extend($.fn.validatebox.defaults.rules, { }) 2.长度重写的方式 1 $.extend($.fn.validatebox.de ...
- easyui表单插件-包括日期时控件-列表
← jQuery EasyUI 表单插件 – Numberspinner 数值微调器 jQuery EasyUI 表单插件 - Timespinner 时间微调器 jQuery EasyUI 插件 ...
- 7、easyui 表单
这是最后一个小节了,后面将会使用一个小项目来进一步实用讲解: 在之前的什么相关只是点都以及讲过了或者说涉及到过,如datagrid表格,树形菜单,布局面板panel,页签,拖放功能,只是在表格的属性细 ...
- easyUI表单基础知识
easyUI创建异步提交表单 我们创建一个带有 name.email 和 phone 字段的表单.通过使用 easyui 表单(form)插件来改变表单(form)为 ajax 表单(form).表单 ...
- JQuery EasyUI 表单
EasyUI 创建异步提交表单 ♦ 通过使用 easyui 表单插件来改变表单为 ajax表单. 表单提交所有字段到后台服务器,服务器处理和发送一些数据返回到前端页面.我们接收返回数据,并将它显示出来 ...
- 雷林鹏分享:jQuery EasyUI 表单 - 创建异步提交表单
jQuery EasyUI 表单 - 创建异步提交表单 本教程向您展示如何通过 easyui 提交一个表单(Form).我们创建一个带有 name.email 和 phone 字段的表单.通过使用 e ...
- easyui表单提交,后台获取不到值
J2ee开发,使用easyui表单提交,在ie中可以正常将参数传递到后台,但使用firefox,chrome都无法将easyui的combobox值传递到后台,使用alert($('#form').s ...
- 雷林鹏分享:jQuery EasyUI 表单 - 创建树形下拉框
jQuery EasyUI 表单 - 创建树形下拉框 树形下拉框(ComboTree)是一个带有下列树形结构(Tree)的下拉框(ComboBox).它可以作为一个表单字段进行使用,可以提交给远程服务 ...
随机推荐
- Linux下安装3.0以上的python
Linux下自带的python2.7是不建议删除的,很多系统软件依赖python2.7,但是现在我们学习python一般需要python3.0,下面介绍安装python3.0. 1.进入python官 ...
- C语言程序设计 第一次作业
(一)实验总结 1.求圆面积和周长 (1)题目 输入圆的半径,计算圆的周长和面积. (2)流程图 (3)测试数据及运行结果 (4)实验分析问题一:输出时往输出框输不上.原因 :没有加双引号.2.判断闰 ...
- Mysql锁机制--并发事务带来的更新丢失问题
Mysql 系列文章主页 =============== 刚开始学习 Mysql 锁的时候,觉得 Mysql 使用的是行锁,再加上其默认的可重复读的隔离级别,那就应该能够自动解决并发事务更新的问题.可 ...
- sqlserver 截取字符串(转)
SQL Server 中截取字符串常用的函数: 1.LEFT ( character_expression , integer_expression ) 函数说明:LEFT ( '源字符串' , '要 ...
- MYSQL 表左连接 ON AND 和ON WHERE 的区别
首先是针对左右连接,这里与inner join区分 在使用left join时,on and 和on where会有区别 1. on的条件是在连接生成临时表时使用的条件,以左表为基准 ,不管on中的条 ...
- 模仿天猫实战【SSM版】——后台开发
上一篇文章链接:模仿天猫实战[SSM版]--项目起步 后台需求分析 在开始码代码之前,还是需要先清楚自己要做什么事情,后台具体需要实现哪些功能: 注意: 订单.用户.订单.推荐链接均不提供增删的功能. ...
- leetcode刷题笔记08 字符串转整数 (atoi)
题目描述 实现 atoi,将字符串转为整数. 在找到第一个非空字符之前,需要移除掉字符串中的空格字符.如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即 ...
- 网页底部广告悬浮弹窗(css)
有的单页面需要添加广告等悬浮div. 部分代码: <div class="flex"> 内容.... </div> 主要css代码: .flex{posit ...
- JavaScript for 循环
循环可以将代码块执行指定的次数. JavaScript 循环 如果您希望一遍又一遍地运行相同的代码,并且每次的值都不同,那么使用循环是很方便的. 我们可以这样输出数组的值: 一般写法: documen ...
- Jmeter(一)_环境部署
简介: Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试CS/BS的软件.它可以用来测试静态和动态资源的性能,可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分 ...