/** * form filter / validate * 表单过滤验证 */ var formfilter = { /** * 获取验证字段对象列表 * {fieldfilter} filter * {jquery} el * {boolean} ispass * @param {string} fieldstring joined with ","; * @return {object} _fieldlist {useraccount:{filter:null,el:null,ispass:false},userpassword:{filter:null,el:null,ispass:false}}; */ getfieldlist : function(fieldstring) { var _namelist = fieldstring.split(","); var _fieldlist = {}; var _field = ""; for(var i=0;i<_namelist.length;i++) { _field = _namelist[i]; _fieldlist[_field] = { filter:null, el:null, ispass:false }; } return _fieldlist }, /** * fill field to list * 填充到字段列表 */ fillfilter : function(fieldlist) { var _fieldlist = fieldlist; for(var _field in _fieldlist) { fieldlist[_field].el = fieldlist[_field].filter.getselelement(); } delete _fieldlist; return fieldlist; }, /** * is passed * 是否通过 */ ispassed : function(fieldlist) { var _ispass = true; for(var _field in fieldlist) { _field = fieldlist[_field]; _field.el.blur(); _ispass &= _field.ispass; } delete fieldlist; return (_ispass == true) } } /** * field filter / validate * 表单过滤验证 */ var fieldfilter = function(selstring) { /* @var selelement jquery */ this.selelement = null; this.selelementname = null; /** * * @param {string} selstring * @return {jquery} _returnel */ this.getel = function(selstring) { var _returnel ; var _selstringlow = selstring.tolocalelowercase(); var _re = new regexp(":(last|first|[a-z]+)","i"); var _posname = selstring.match(_re); _posname = _posname?_posname[1]:""; _posname = _posname && (_posname)?":"+_posname:""; if (_posname) { _re = new regexp(_posname,"i"); selstring = selstring.replace(_re,""); } if (selstring.indexof("#") == 0) { _returnel = jquery(selstring); }else if (_selstringlow.indexof("id=") == 0 ) { _returnel = jquery("#\""+selstring.substr(3)); }else if (_selstringlow.indexof("name=") == 0 ) { _returnel = jquery("[name="+selstring.substr(5)+"]"+_posname); }else{ _returnel = jquery("#"+selstring); } return _returnel; } this.getselelement = function(selstring){ if (!this.selelement && selstring) { var _restart = new regexp("^(#|name=|id=)","i"); var _reend = new regexp(":(last|first|[a-z]+)$","i"); this.selelementname = selstring.replace(_restart,"").replace(_reend,""); this.selelement = this.getel(selstring); } return this.selelement; }; /* 获取元素主名称 */ this.getselelementname = function(){ return this.selelementname; } /* construction */ this.getselelement(selstring); this._comparefieldresult = null; this._comparefieldreason = null; /** * multi-field value compare * 对比多个值 * @param {array} fieldlist * @param {boolean} allowempty */ this.comparewith = function(fieldlist,allowempty) { var _cvalue; var _value; var _fieldname; this._comparefieldresult = true; for(var i=-1;i 255) ? _charlength : 1; } return _len; } /** * check the value length * 检查值得长度 * @param {integer} minlimit * @param {integer} maxlimit * @param {string} pregstring user account or other * @return{boolean} */ this.checklength = function(minlimit,maxlimit,pregstring) { var _cvalue; var _value; var _fieldname; var _fieldlength; var _ispass = true; var _reg; var _el; var _selel = this.getselelement(); var _selellen = _selel.length; var _selobj = this; if (!maxlimit && minlimit) { maxlimit = minlimit; } if (!_selellen) { _ispass &= false; } if (pregstring) { _reg = new regexp(pregstring,""); } _selel.each(function(){ _el = jquery(this); _cvalue = _el.val(); if (minlimit) { _fieldlength = _selobj.mb_strlen(_cvalue); if (_fieldlength >= minlimit && _fieldlength <= maxlimit) { _ispass &= true; }else{ _ispass &= false; } }else if(!minlimit){ _ispass &= true; } if (pregstring && _ispass) { _ispass &= _reg.test(_cvalue); } }); return _ispass; }; /** * check field was checked or not * 是否被选定 * input:[checkbox,radio] * @return {boolean} */ this.ischecked = function(allowempty,pregstring) { var _ichecked = true; var _el; var _elischecked; var _re; var _selel = this.getselelement(); var _checkedlen = 0; if (pregstring) { _re = new regexp(pregstring,"i"); } _selel.each(function(){ _el = jquery(this); _elischecked = _el.attr("checked"); _checkedlen += _elischecked?1:0; if (pregstring && _elischecked) { _ichecked &= _re.test(_el.val()); } }); _ichecked &= (_checkedlen > 0); if (allowempty && (_checkedlen == 0)) { _ichecked = true; } return _ichecked?true:false; }; /** * check field was selected whether not * 是否被选定 * select * @param {string} pregstring */ this.isselected = function(pregstring) { var _isselected; _isselected = this.getselelement().val(); if (pregstring && _isselected) { var _re = new regexp(pregstring,"i"); return _re.test(_isselected); } return _isselected?true:false; } /** * get noti box * 获取提示框 * @param {string} selstring */ this.getnotiel = function(selstring){ var _elname = this.getselelementname(); var _returnel; _elname = _elname.replace(new regexp("\\[\\]$"),""); _returnel = jquery("#_"+_elname+"_noti"); if (selstring) { _returnel = jquery(selstring,_returnel); } return _returnel; }; }