EasyUI validType属性

  1 /**
  2  * 包含easyui的扩展和常用的方法
  3  *
  4  * @author
  5  *
  6  * @version 20120806
  7  */
  8  
  9 var wjc = $.extend({}, wjc);/* 定义全局对象,类似于命名空间或包的作用 */
 10  
 11 /**
 12  *
 13  * @requires jQuery,EasyUI
 14  *
 15  * panel关闭时回收内存,主要用于layout使用iframe嵌入网页时的内存泄漏问题
 16  */
 17 $.fn.panel.defaults.onBeforeDestroy = function() {
 18     var frame = $('iframe', this);
 19     try {
 20         if (frame.length > 0) {
 21             for ( var i = 0; i < frame.length; i++) {
 22                 frame[i].contentWindow.document.write('');
 23                 frame[i].contentWindow.close();
 24             }
 25             frame.remove();
 26             if ($.browser.msie) {
 27                 CollectGarbage();
 28             }
 29         }
 30     } catch (e) {
 31     }
 32 };
 33  
 34 /**
 35  * 使panel和datagrid在加载时提示
 36  *
 37  *
 38  * @requires jQuery,EasyUI
 39  *
 40  */
 41 $.fn.panel.defaults.loadingMessage = '加载中....';
 42 $.fn.datagrid.defaults.loadMsg = '加载中....';
 43  
 44 /**
 45  * @author wfire
 46  *
 47  * @requires jQuery,EasyUI
 48  *
 49  * 通用错误提示
 50  *
 51  * 用于datagrid/treegrid/tree/combogrid/combobox/form加载数据出错时的操作
 52  */
 53 var easyuiErrorFunction = function(XMLHttpRequest) {
 54     $.messager.progress('close');
 55 //  $.messager.alert('错误', XMLHttpRequest.responseText);
 56 //  $.messager.confirm('错  误',XMLHttpRequest.responseText,function(r){  
 57 //      if (r){
 58 //          parent.location.replace('login.jsp');
 59 //      }  
 60 //  });
 61 };
 62 $.fn.datagrid.defaults.onLoadError = easyuiErrorFunction;
 63 $.fn.treegrid.defaults.onLoadError = easyuiErrorFunction;
 64 $.fn.tree.defaults.onLoadError = easyuiErrorFunction;
 65 $.fn.combogrid.defaults.onLoadError = easyuiErrorFunction;
 66 $.fn.combobox.defaults.onLoadError = easyuiErrorFunction;
 67 $.fn.form.defaults.onLoadError = easyuiErrorFunction;
 68  
 69 /**
 70  *
 71  * @requires jQuery,EasyUI
 72  *
 73  * 为datagrid、treegrid增加表头菜单,用于显示或隐藏列,注意:冻结列不在此菜单中
 74  */
 75 var createGridHeaderContextMenu = function(e, field) {
 76     e.preventDefault();
 77     var grid = $(this);/* grid本身 */
 78     var headerContextMenu = this.headerContextMenu;/* grid上的列头菜单对象 */
 79     if (!headerContextMenu) {
 80         var tmenu = $('
').appendTo('body'); 81 var fields = grid.datagrid('getColumnFields'); 82 for ( var i = 0; i < fields.length; i++) { 83 var fildOption = grid.datagrid('getColumnOption', fields[i]); 84 if (!fildOption.hidden) { 85 $('
').html(fildOption.title).appendTo(tmenu); 86 } else { 87 $('
').html(fildOption.title).appendTo(tmenu); 88 } 89 } 90 headerContextMenu = this.headerContextMenu = tmenu.menu({ 91 onClick : function(item) { 92 var field = $(item.target).attr('field'); 93 if (item.iconCls == 'icon-ok') { 94 grid.datagrid('hideColumn', field); 95 $(this).menu('setIcon', { 96 target : item.target, 97 iconCls : 'icon-empty' 98 }); 99 } else { 100 grid.datagrid('showColumn', field); 101 $(this).menu('setIcon', { 102 target : item.target, 103 iconCls : 'icon-ok' 104 }); 105 } 106 } 107 }); 108 } 109 headerContextMenu.menu('show', { 110 left : e.pageX, 111 top : e.pageY 112 }); 113 }; 114 $.fn.datagrid.defaults.onHeaderContextMenu = createGridHeaderContextMenu; 115 $.fn.treegrid.defaults.onHeaderContextMenu = createGridHeaderContextMenu; 116 117 /** 118 * 119 * @requires jQuery,EasyUI 120 * 121 * 扩展validatebox,添加验证两次密码功能 122 */ 123 $.extend($.fn.validatebox.defaults.rules, { 124 eqPwd : { 125 validator : function(value, param) { 126 return value == $(param[0]).val(); 127 }, 128 message : '密码不一致!' 129 }, 130 idcard : {// 验证身份证 131 validator : function(value) { 132 return /^\d{15}(\d{2}[A-Za-z0-9])?$/i.test(value); 133 }, 134 message : '身份证号码格式不正确' 135 }, 136 minLength: { 137 validator: function(value, param){ 138 return value.length >= param[0]; 139 }, 140 message: '请输入至少(2)个字符.' 141 }, 142 length:{validator:function(value,param){ 143 var len=$.trim(value).length; 144 return len>=param[0]&&len<=param[1]; 145 }, 146 message:"输入内容长度必须介于{0}和{1}之间." 147 }, 148 phone : {// 验证电话号码 149 validator : function(value) { 150 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); 151 }, 152 message : '格式不正确,请使用下面格式:010-88888888' 153 }, 154 mobile : {// 验证手机号码 155 validator : function(value) { 156 return /^(13|15|18)\d{9}$/i.test(value); 157 }, 158 message : '手机号码格式不正确' 159 }, 160 intOrFloat : {// 验证整数或小数 161 validator : function(value) { 162 return /^\d+(\.\d+)?$/i.test(value); 163 }, 164 message : '请输入数字,并确保格式正确' 165 }, 166 currency : {// 验证货币 167 validator : function(value) { 168 return /^\d+(\.\d+)?$/i.test(value); 169 }, 170 message : '货币格式不正确' 171 }, 172 qq : {// 验证QQ,从10000开始 173 validator : function(value) { 174 return /^[1-9]\d{4,9}$/i.test(value); 175 }, 176 message : 'QQ号码格式不正确' 177 }, 178 integer : {// 验证整数 179 validator : function(value) { 180 return /^[+]?[1-9]+\d*$/i.test(value); 181 }, 182 message : '请输入整数' 183 }, 184 age : {// 验证年龄 185 validator : function(value) { 186 return /^(?:[1-9][0-9]?|1[01][0-9]|120)$/i.test(value); 187 }, 188 message : '年龄必须是0到120之间的整数' 189 }, 190 chinese : {// 验证中文 191 validator : function(value) { 192 return /^[\Α-\¥]+$/i.test(value); 193 }, 194 message : '请输入中文' 195 }, 196 english : {// 验证英语 197 validator : function(value) { 198 return /^[A-Za-z]+$/i.test(value); 199 }, 200 message : '请输入英文' 201 }, 202 unnormal : {// 验证是否包含空格和非法字符 203 validator : function(value) { 204 return /.+/i.test(value); 205 }, 206 message : '输入值不能为空和包含其他非法字符' 207 }, 208 username : {// 验证用户名 209 validator : function(value) { 210 return /^[a-zA-Z][a-zA-Z0-9_]{5,15}$/i.test(value); 211 }, 212 message : '用户名不合法(字母开头,允许6-16字节,允许字母数字下划线)' 213 }, 214 faxno : {// 验证传真 215 validator : function(value) { 216 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); 217 }, 218 message : '传真号码不正确' 219 }, 220 zip : {// 验证邮政编码 221 validator : function(value) { 222 return /^[0-9]\d{5}$/i.test(value); 223 }, 224 message : '邮政编码格式不正确' 225 }, 226 ip : {// 验证IP地址 227 validator : function(value) { 228 return /d+.d+.d+.d+/i.test(value); 229 }, 230 message : 'IP地址格式不正确' 231 }, 232 name : {// 验证姓名,可以是中文或英文 233 validator : function(value) { 234 return /^[\Α-\¥]+$/i.test(value)|/^\w+[\w\s]+\w+$/i.test(value); 235 }, 236 message : '请输入姓名' 237 }, 238 msn:{ 239 validator : function(value){ 240 return /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(value); 241 }, 242 message : '请输入有效的msn账号(例:abc@hotnail(msn/live).com)' 243 } 244 }); 245 246 /** 247 * 248 * @requires jQuery,EasyUI 249 * 250 * 扩展tree,使其支持平滑数据格式 251 */ 252 $.fn.tree.defaults.loadFilter = function(data, parent) { 253 var opt = $(this).data().tree.options; 254 var idFiled, textFiled, parentField; 255 if (opt.parentField) { 256 idFiled = opt.idFiled || 'id'; 257 textFiled = opt.textFiled || 'text'; 258 parentField = opt.parentField; 259 var i, l, treeData = [], tmpMap = []; 260 for (i = 0, l = data.length; i < l; i++) { 261 tmpMap[data[i][idFiled]] = data[i]; 262 } 263 for (i = 0, l = data.length; i < l; i++) { 264 if (tmpMap[data[i][parentField]] && data[i][idFiled] != data[i][parentField]) { 265 if (!tmpMap[data[i][parentField]]['children']) 266 tmpMap[data[i][parentField]]['children'] = []; 267 data[i]['text'] = data[i][textFiled]; 268 tmpMap[data[i][parentField]]['children'].push(data[i]); 269 } else { 270 data[i]['text'] = data[i][textFiled]; 271 treeData.push(data[i]); 272 } 273 } 274 return treeData; 275 } 276 return data; 277 }; 278 279 /** 280 * 281 * @requires jQuery,EasyUI 282 * 283 * 扩展treegrid,使其支持平滑数据格式 284 */ 285 $.fn.treegrid.defaults.loadFilter = function(data, parentId) { 286 var opt = $(this).data().treegrid.options; 287 var idFiled, textFiled, parentField; 288 if (opt.parentField) { 289 idFiled = opt.idFiled || 'id'; 290 textFiled = opt.textFiled || 'text'; 291 parentField = opt.parentField; 292 var i, l, treeData = [], tmpMap = []; 293 for (i = 0, l = data.length; i < l; i++) { 294 tmpMap[data[i][idFiled]] = data[i]; 295 } 296 for (i = 0, l = data.length; i < l; i++) { 297 if (tmpMap[data[i][parentField]] && data[i][idFiled] != data[i][parentField]) { 298 if (!tmpMap[data[i][parentField]]['children']) 299 tmpMap[data[i][parentField]]['children'] = []; 300 data[i]['text'] = data[i][textFiled]; 301 tmpMap[data[i][parentField]]['children'].push(data[i]); 302 } else { 303 data[i]['text'] = data[i][textFiled]; 304 treeData.push(data[i]); 305 } 306 } 307 return treeData; 308 } 309 return data; 310 }; 311 312 /** 313 * @author wfire 314 * 315 * @requires jQuery,EasyUI 316 * 317 * 扩展combotree,使其支持平滑数据格式 318 */ 319 $.fn.combotree.defaults.loadFilter = $.fn.tree.defaults.loadFilter; 320 321 /** 322 * 323 * @requires jQuery,EasyUI 324 * 325 * 防止panel/window/dialog组件超出浏览器边界 326 * @param left 327 * @param top 328 */ 329 var easyuiPanelOnMove = function(left, top) { 330 var l = left; 331 var t = top; 332 if (l < 1) { 333 l = 1; 334 } 335 if (t < 1) { 336 t = 1; 337 } 338 var width = parseInt($(this).parent().css('width')) + 14; 339 var height = parseInt($(this).parent().css('height')) + 14; 340 var right = l + width; 341 var buttom = t + height; 342 var browserWidth = $(window).width(); 343 var browserHeight = $(window).height(); 344 if (right > browserWidth) { 345 l = browserWidth - width; 346 } 347 if (buttom > browserHeight) { 348 t = browserHeight - height; 349 } 350 $(this).parent().css({/* 修正面板位置 */ 351 left : l, 352 top : t 353 }); 354 }; 355 $.fn.dialog.defaults.onMove = easyuiPanelOnMove; 356 $.fn.window.defaults.onMove = easyuiPanelOnMove; 357 $.fn.panel.defaults.onMove = easyuiPanelOnMove; 358 359 /** 360 * 361 * @requires jQuery,EasyUI,jQuery cookie plugin 362 * 363 * 更换EasyUI主题的方法 364 * 365 * @param themeName 366 * 主题名称 367 */ 368 changeTheme = function(themeName) { 369 var $easyuiTheme = $('#easyuiTheme'); 370 var url = $easyuiTheme.attr('href'); 371 var href = url.substring(0, url.indexOf('themes')) + 'themes/' + themeName + '/easyui.css'; 372 $easyuiTheme.attr('href', href); 373 374 var $iframe = $('iframe'); 375 if ($iframe.length > 0) { 376 for ( var i = 0; i < $iframe.length; i++) { 377 var ifr = $iframe[i]; 378 $(ifr).contents().find('#easyuiTheme').attr('href', href); 379 } 380 } 381 382 $.cookie('easyuiThemeName', themeName, { 383 expires : 7 384 }); 385 }; 386 387 388 serializeObject = function(form) { 389 var o = {}; 390 $.each(form.serializeArray(), function(index) { 391 if (o[this['name']]) { 392 o[this['name']] = o[this['name']] + "," + this['value']; 393 } else { 394 o[this['name']] = this['value']; 395 } 396 }); 397 return o; 398 }; 399 400 /** 401 * 402 * 增加formatString功能 403 * 404 * 使用方法:formatString('字符串{0}字符串{1}字符串','第一个变量','第二个变量'); 405 * 406 * @returns 格式化后的字符串 407 */ 408 formatString = function(str) { 409 for ( var i = 0; i < arguments.length - 1; i++) { 410 str = str.replace("{" + i + "}", arguments[i + 1]); 411 } 412 return str; 413 }; 414 415 416 stringToList = function(value) { 417 if (value != undefined && value != '') { 418 var values = []; 419 var t = value.split(','); 420 for ( var i = 0; i < t.length; i++) { 421 values.push('' + t[i]);/* 避免他将ID当成数字 */ 422 } 423 return values; 424 } else { 425 return []; 426 } 427 }; 428 429 430 //$.ajaxSetup({ 431 // type : 'POST', 432 // error : function(XMLHttpRequest, textStatus, errorThrown) { 433 // $.messager.progress('close'); 434 // $.messager.alert('错误', errorThrown); 435 // } 436 //}); 437 /** 438 * @author 439 * 440 * @requires jQuery 441 * 442 * 判断浏览器是否是IE并且版本小于8 443 * 444 * @returns true/false 445 */ 446 wjc.isLessThanIe7 = function() { 447 return ($.browser.msie && $.browser.version < 7); 448 }; 449 450 //时间格式化 451 wjc.dateFormat = function (format) { 452 /* 453 * eg:format="yyyy-MM-dd hh:mm:ss"; 454 */ 455 if (!format) { 456 format = "yyyy-MM-dd hh:mm:ss"; 457 } 458 459 var o = { 460 "M+" : this.getMonth() + 1, // month 461 "d+" : this.getDate(), // day 462 "h+" : this.getHours(), // hour 463 "m+" : this.getMinutes(), // minute 464 "s+" : this.getSeconds(), // second 465 "q+" : Math.floor((this.getMonth() + 3) / 3), // quarter 466 "S" : this.getMilliseconds() 467 // millisecond 468 }; 469 470 if (/(y+)/.test(format)) { 471 format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); 472 } 473 474 for (var k in o) { 475 if (new RegExp("(" + k + ")").test(format)) { 476 format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)); 477 } 478 } 479 return format; 480 };

 出自:http://www.cnblogs.com/exmyth/p/4046216.html

转载于:https://www.cnblogs.com/java-le/p/6534165.html

你可能感兴趣的:(EasyUI validType属性)