easyui 之表單驗證
阿新 • • 發佈:2017-07-11
pla focus res default code font led disable function
1 /**
2 * 擴展easyui的validator插件rules,支持更多類型驗證
3 */
4 $.extend($.fn.validatebox.defaults.rules, {
5 minLength : { // 判斷最小長度
6 validator : function(value, param) {
7 return value.length >= param[0];
8 },
9 message : ‘最少輸入 {0} 個字符‘
10 },
11 length : { // 長度
12 validator : function(value, param) {
13 var len = $.trim(value).length;
14 return len >= param[0] && len <= param[1];
15 },
16 message : "輸入內容長度必須介於{0}和{1}之間"
17 },
18 phone : {// 驗證電話號碼
19 validator : function(value) {
20 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);
21 },
22 message : ‘格式不正確,請使用下面格式:020-88888888‘
23 },
24 mobile : {// 驗證手機號碼
25 validator : function(value) {
26 return /^(13|15|18)\d{9}$/i.test(value);
27 },
28 message : ‘手機號碼格式不正確‘
29 },
30 phoneAndMobile : {// 電話號碼或手機號碼
31 validator : function(value) {
32 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);
33 },
34 message : ‘電話號碼或手機號碼格式不正確‘
35 },
36 idcard : {// 驗證身份證
37 validator : function(value) {
38 return /^\d{15}(\d{2}[A-Za-z0-9])?$/i.test(value) || /^\d{18}(\d{2}[A-Za-z0-9])?$/i.test(value);
39 },
40 message : ‘身份證號碼格式不正確‘
41 },
42 intOrFloat : {// 驗證整數或小數
43 validator : function(value) {
44 return /^\d+(\.\d+)?$/i.test(value);
45 },
46 message : ‘請輸入數字,並確保格式正確‘
47 },
48 currency : {// 驗證貨幣
49 validator : function(value) {
50 return /^\d+(\.\d+)?$/i.test(value);
51 },
52 message : ‘貨幣格式不正確‘
53 },
54 qq : {// 驗證QQ,從10000開始
55 validator : function(value) {
56 return /^[1-9]\d{4,9}$/i.test(value);
57 },
58 message : ‘QQ號碼格式不正確‘
59 },
60 integer : {// 驗證整數
61 validator : function(value) {
62 return /^[+]?[1-9]+\d*$/i.test(value);
63 },
64 message : ‘請輸入整數‘
65 },
66 chinese : {// 驗證中文
67 validator : function(value) {
68 return /^[\u0391-\uFFE5]+$/i.test(value);
69 },
70 message : ‘請輸入中文‘
71 },
72 chineseAndLength : {// 驗證中文及長度
73 validator : function(value) {
74 var len = $.trim(value).length;
75 if (len >= param[0] && len <= param[1]) {
76 return /^[\u0391-\uFFE5]+$/i.test(value);
77 }
78 },
79 message : ‘請輸入中文‘
80 },
81 english : {// 驗證英語
82 validator : function(value) {
83 return /^[A-Za-z]+$/i.test(value);
84 },
85 message : ‘請輸入英文‘
86 },
87 englishAndLength : {// 驗證英語及長度
88 validator : function(value, param) {
89 var len = $.trim(value).length;
90 if (len >= param[0] && len <= param[1]) {
91 return /^[A-Za-z]+$/i.test(value);
92 }
93 },
94 message : ‘請輸入英文‘
95 },
96 englishUpperCase : {// 驗證英語大寫
97 validator : function(value) {
98 return /^[A-Z]+$/.test(value);
99 },
100 message : ‘請輸入大寫英文‘
101 },
102 unnormal : {// 驗證是否包含空格和非法字符
103 validator : function(value) {
104 return /.+/i.test(value);
105 },
106 message : ‘輸入值不能為空和包含其他非法字符‘
107 },
108 username : {// 驗證用戶名
109 validator : function(value) {
110 return /^[a-zA-Z][a-zA-Z0-9_]{5,15}$/i.test(value);
111 },
112 message : ‘用戶名不合法(字母開頭,允許6-16字節,允許字母數字下劃線)‘
113 },
114 faxno : {// 驗證傳真
115 validator : function(value) {
116 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);
117 },
118 message : ‘傳真號碼不正確‘
119 },
120 zip : {// 驗證郵政編碼
121 validator : function(value) {
122 return /^[1-9]\d{5}$/i.test(value);
123 },
124 message : ‘郵政編碼格式不正確‘
125 },
126 ip : {// 驗證IP地址
127 validator : function(value) {
128 return /d+.d+.d+.d+/i.test(value);
129 },
130 message : ‘IP地址格式不正確‘
131 },
132 name : {// 驗證姓名,可以是中文或英文
133 validator : function(value) {
134 return /^[\u0391-\uFFE5]+$/i.test(value) | /^\w+[\w\s]+\w+$/i.test(value);
135 },
136 message : ‘請輸入姓名‘
137 },
138 engOrChinese : {// 可以是中文或英文
139 validator : function(value) {
140 return /^[\u0391-\uFFE5]+$/i.test(value) | /^\w+[\w\s]+\w+$/i.test(value);
141 },
142 message : ‘請輸入中文‘
143 },
144 engOrChineseAndLength : {// 可以是中文或英文
145 validator : function(value) {
146 var len = $.trim(value).length;
147 if (len >= param[0] && len <= param[1]) {
148 return /^[\u0391-\uFFE5]+$/i.test(value) | /^\w+[\w\s]+\w+$/i.test(value);
149 }
150 },
151 message : ‘請輸入中文或英文‘
152 },
153 carNo : {
154 validator : function(value) {
155 return /^[\u4E00-\u9FA5][\da-zA-Z]{6}$/.test(value);
156 },
157 message : ‘車牌號碼無效(例:粵B12350)‘
158 },
159 carenergin : {
160 validator : function(value) {
161 return /^[a-zA-Z0-9]{16}$/.test(value);
162 },
163 message : ‘發動機型號無效(例:FG6H012345654584)‘
164 },
165 same : {
166 validator : function(value, param) {
167 if ($("#" + param[0]).val() != "" && value != "") {
168 return $("#" + param[0]).val() == value;
169 } else {
170 return true;
171 }
172 },
173 message : ‘兩次輸入的密碼不一致!‘
174 }
175 });
176 /**
177 * 擴展easyui validatebox的兩個方法.移除驗證和還原驗證
178 */
179 $.extend($.fn.validatebox.methods, {
180 remove : function(jq, newposition) {
181 return jq.each(function() {
182 $(this).removeClass("validatebox-text validatebox-invalid").unbind(‘focus.validatebox‘).unbind(‘blur.validatebox‘);
183 // remove tip
184 // $(this).validatebox(‘hideTip‘, this);
185 });
186 },
187 reduce : function(jq, newposition) {
188 return jq.each(function() {
189 var opt = $(this).data().validatebox.options;
190 $(this).addClass("validatebox-text").validatebox(opt);
191 // $(this).validatebox(‘validateTip‘, this);
192 });
193 },
194 validateTip : function(jq) {
195 jq = jq[0];
196 var opts = $.data(jq, "validatebox").options;
197 var tip = $.data(jq, "validatebox").tip;
198 var box = $(jq);
199 var value = box.val();
200 function setTipMessage(msg) {
201 $.data(jq, "validatebox").message = msg;
202 };
203 var disabled = box.attr("disabled");
204 if (disabled == true || disabled == "true") {
205 return true;
206 }
207 if (opts.required) {
208 if (value == "") {
209 box.addClass("validatebox-invalid");
210 setTipMessage(opts.missingMessage);
211 $(jq).validatebox(‘showTip‘, jq);
212 return false;
213 }
214 }
215 if (opts.validType) {
216 var result = /([a-zA-Z_]+)(.*)/.exec(opts.validType);
217 var rule = opts.rules[result[1]];
218 if (value && rule) {
219 var param = eval(result[2]);
220 if (!rule["validator"](value, param)) {
221 box.addClass("validatebox-invalid");
222 var message = rule["message"];
223 if (param) {
224 for (var i = 0; i < param.length; i++) {
225 message = message.replace(new RegExp("\\{" + i + "\\}", "g"), param[i]);
226 }
227 }
228 setTipMessage(opts.invalidMessage || message);
229 $(jq).validatebox(‘showTip‘, jq);
230 return false;
231 }
232 }
233 }
234 box.removeClass("validatebox-invalid");
235 $(jq).validatebox(‘hideTip‘, jq);
236 return true;
237 },
238 showTip : function(jq) {
239 jq = jq[0];
240 var box = $(jq);
241 var msg = $.data(jq, "validatebox").message
242 var tip = $.data(jq, "validatebox").tip;
243 if (!tip) {
244 tip = $("<div class=\"validatebox-tip\">" + "<span class=\"validatebox-tip-content\">" + "</span>" + "<span class=\"validatebox-tip-pointer\">" + "</span>" + "</div>").appendTo("body");
245 $.data(jq, "validatebox").tip = tip;
246 }
247 tip.find(".validatebox-tip-content").html(msg);
248 tip.css({
249 display : "block",
250 left : box.offset().left + box.outerWidth(),
251 top : box.offset().top
252 });
253 },
254 hideTip : function(jq) {
255 jq = jq[0];
256 var tip = $.data(jq, "validatebox").tip;
257 if (tip) {
258 tip.remove;
259 $.data(jq, "validatebox").tip = null;
260 }
261 }
262 });
遠程校驗
1 $.extend($.fn.validatebox.defaults.rules, {
2 checkItem: {
3 validator: function (value) {
4 var flag = false;
5 $.ajax({
6 async: false,
7 cache: false,
8 type: ‘post‘,
9 url: ‘/CarSecurityCheckItem/CheckName‘,
10 data: {
11 name: value
12 },
13 success: function (date) {
14 if (date === ‘True‘) {
15 flag = true;
16 }
17 }
18 })
19 return flag;
20 },
21 message: ‘名稱已存在‘
22 }
23
24 })
http://uule.iteye.com/blog/1849690
easyui 之表單驗證