JS verification controls 1.3

Source: Internet
Author: User
Update content: 1 new event that can be customized prompt parameter name 2 submit and so on can be bound only once 3 integrate some common verification to go to varurlHelp {}; jump to the page urlHelpGoUrlfunction (url, addbackurl) {if (add update content: 1. added the parameter name that can be customized. 2. submission and other events can be bound only once. 3. integrate some common verifications into it
Var urlHelp ={}; // jump to the page urlHelp. GoUrl = function (url, addbackurl) {if (addbackurl! = True) addbackurl = false; if (addbackurl = true) {var backurl = urlHelp. request ('backurl'); if (backurl! = Null & backurl! = Undefined & backurl! = "") {Url = urlHelp. setRequest (url, "backurl", backurl) ;}} location. replace (url);} // get the URL urlHelp of the current page. getPageUrl = function () {var oldurl = location. href; var url = oldurl. substring (oldurl. length-1, oldurl. length); while (url = "#") {oldurl = oldurl. substring (0, oldurl. length-1); url = oldurl. substring (oldurl. length-1, oldurl. length);} oldurl = urlHelp. setRequest (oldurl, "mathrandom ", Math. random (); return oldurl; if (oldurl. indexOf ('? ')! =-1) {var index = oldurl. lastIndexOf ("&", oldurl. length); if (index! =-1) {var a = oldurl. substring (index + 1, oldurl. length); if (! IsNaN (a) {oldurl = oldurl. substring (0, index) }}oldurl = oldurl + "&" + Math. random ();} else {oldurl = oldurl + "? "+ Math. random ();} return oldurl;} // encode the URL help. getEncodeURI = function (content) {content = encodeURIComponent (content); content = urlHelp. myReplace (content, "#", "% 23"); return content ;}// replace urlHelp with the content. myReplace = function (content, value1, value2) {var reg = new RegExp (value1, "g"); content = content. replace (reg, value2); return content;} // obtain the URL parameter urlHelp. request = function (paras) {Var url = location. href; var paraString = url. substring (url. indexOf ("? ") + 1, url. length ). split ("&"); var paraObj = {} for (I = 0; j = paraString [I]; I ++) {paraObj [j. substring (0, j. indexOf ("= ")). toLowerCase ()] = j. substring (j. indexOf ("=") + 1, j. length);} var returnValue = paraObj [paras. toLowerCase ()]; if (typeof (returnValue) = "undefined") {return ";} else {return urlHelp. myReplace (returnValue, '#', '') ;}} urlHelp. setRequest = function (url, par, par_value) {Var pattern = par + '= ([^ &] *)'; var replaceText = par + '=' + par_value; if (url. match (pattern) {var tmp = '/\' + par + '= [^ &] */'; tmp = url. replace (eval (tmp), replaceText); return (tmp);} else {if (url. match ('[\?] ') {Return url +' & '+ replaceText;} else {return url + '? '+ ReplaceText ;}} return url;} // JavaScript Document if (typeof (HTMLElement )! = "Undefined") {HTMLElement. prototype. insertAdjacentElement = function (where, parsedNode) {switch (where) {case "beforeBegin": this. parentNode. insertBefore (parsedNode, this); break; case "afterBegin": this. insertBefore (parsedNode, this. firstChild); break; case "beforeEnd": this. appendChild (parsedNode); break; case "afterEnd": if (this. nextSibling) this. parentNode. insertBefore (parsedNode, this. ne XtSibling); else this. parentNode. appendChild (parsedNode); break;} HTMLElement. prototype. insertAdjacentHTML = function (where, htmlStr) {var r = this. ownerDocument. createRange (); r. setStartBefore (this); var parsedHTML = r. createContextualFragment (htmlStr); this. insertAdjacentElement (where, parsedHTML);} HTMLElement. prototype. insertAdjacentText = function (where, txtStr) {var parsedText = docume Nt. createTextNode (txtStr); this. insertAdjacentElement (where, parsedText) ;}} function addEvent (element, type, handler, funname) {if (! Element) {return;} // assign a unique ID for each event handler if (! Handler. $ guid) handler. $ guid = addEvent. guid ++; try {if (! Funname) funname = handler. $ guid; if (! Element. funnames) element. setAttribute ('funnames', ""); if (element. funnames. split (','). any (funname) {return ;}} catch (e) {}// create a hash table if (! Element. events) element. events = {}; // The var handlers = element for creating an event handler for each "element/event. events [type]; if (! Handlers) {handlers = element. events [type] ={}; // stores existing event handler functions (if any) if (element ["on" + type]) {handlers [0] = element ["on" + type] ;}// Save the event handler to the hash table handlers [handler. $ guid] = handler; // assign a global event handler function for all work. element ["on" + type] = handleEvent; try {element. setAttribute ('funnames', element. funnames + funname + ",") ;}catch (e) {}}; // counter addEvent used to create a unique ID. guid = 1; function removeAllEvent (el Ement, type) {if (element & element. events & element. events! = Null) {element. events [type] ={};}} function removeEvent (element, type, handler) {// Delete the event handler function www.2cto.com if (element & element. events & element. events [type]) {delete element. events [type] [handler. $ guid] ;}}; function handleEvent (event) {var returnValue = true; try {// capture event objects (IE uses global event objects) event = event | fixEvent (window. event); // reference var handlers = this to obtain the hash table of the event processing function. events [event. type ]; // Execute every processing function for (var I in handlers) {this. $ handleEvent = handlers [I]; if (this. $ handleEvent (event) === false) {returnValue = false ;}} catch (e) {} return returnValue ;}; // Add some "missing" function fixEvent (event) {if (event! = Null) {// Add the standard W3C method event. preventDefault = fixEvent. preventDefault; event. stopPropagation = fixEvent. stopPropagation;} return event;}; fixEvent. preventDefault = function () {this. returnValue = false ;}; fixEvent. stopPropagation = function () {this. cancelBubble = true;}; Array. prototype. S = String. fromCharCode (2); Array. prototype. any = function (e) {var r = new RegExp (this. S + e + this. s); ret Urn (r. test (this. S + this. join (this. s) + this. s) ;}; function addEvent (element, type, handler, funname) {// assign a unique ID for each event handler if (! Handler. $ guid) handler. $ guid = addEvent. guid ++; try {if (! Funname) funname = handler. $ guid; var funnames = element. getAttribute ("funnames"); if (funnames = null | funnames = "") {element. setAttribute ("funnames", ""); funnames = "";} if (funnames. split (','). any (funname) {return ;}} catch (e) {}// create a hash table if (! Element. events) element. events = {}; // The var handlers = element for creating an event handler for each "element/event. events [type]; if (! Handlers) {handlers = element. events [type] ={}; // stores existing event handler functions (if any) if (element ["on" + type]) {handlers [0] = element ["on" + type] ;}// Save the event handler to the hash table handlers [handler. $ guid] = handler; // assign a global event handler function for all work. element ["on" + type] = handleEvent; try {element. setAttribute ('funnames', element. getAttribute ("funnames") + funname + ",") ;}catch (e) {}}; // counter addEvent used to create a unique ID. guid = 1; function r EmoveAllEvent (element, type) {if (element. events & element. events! = Null) {try {element. events [type] ={}; element. setAttribute ("funnames", "");} catch (e) {}} function removeEvent (element, type, handler) {// Delete the event handler function www.2cto.com if (element. events & element. events [type]) {delete element. events [type] [handler. $ guid] ;}}; function handleEvent (event) {var returnValue = true; try {// capture event objects (IE uses global event objects) event = event | fixEvent (window. event); // obtain the event Reference var handlers = this. events [event. type]; // execute each processing function for (var I in handlers) {this. $ handleEvent = handlers [I]; if (this. $ handleEvent (event) === false) {returnValue = false ;}} catch (e) {} return returnValue ;}; // Add some "missing" function fixEvent (event) {if (event! = Null) {// Add the standard W3C method event. preventDefault = fixEvent. preventDefault; event. stopPropagation = fixEvent. stopPropagation;} return event;}; fixEvent. preventDefault = function () {this. returnValue = false ;}; fixEvent. stopPropagation = function () {this. cancelBubble = true;}; function dataValidator () {var self = this; this. model = ""; this. field = ""; this. value = ""; this. id = ""; this. msgid = ""; // Display the error ID this. btnid = ""; // button ID this. successMsg = "" this. callback = function (xmlhttp) {if (xmlhttp. readyState = 0 | xmlhttp. status = 0) {return;} var msg = document. getElementById (self. msgid); var btn = document. getElementById (self. btnid); var ss = xmlhttp. responseText. split ('|'); var code = ss [0]; var message = ""; if (ss [1]) {message = ss [1];} if (code = "0") {msg. innerHTML = mess Age; msg. style. color = 'red'; btn. disabled = true;} else {msg. innerHTML = self. successMsg; msg. style. color = 'green'; btn. disabled = false;} this. send = function () {$. ajax ({type: "POST", url: "DataValidator. ashx ", data:" action = validator & model = "+ this. model + "& field =" + this. field + "& value =" + this. value + "& id =" + this. id, complete: function (response, a, B) {self. callback (response); re Turn ;}}) ;}} function ValidatorAlert (message) {try {var easyui = typeof (jQuery) = 'undefined '? Null: jQuery; if (! Easyui | easyui. messager = null | easyui. messager = undefined |! Easyui. messager) {easyui = typeof (window. parent. jQuery) = 'undefined '? Null: window. parent. jQuery;} if (easyui) {easyui. messager. alert ('Operation hprompt ', message) ;}else {alert (message) ;}} catch (e) {alert (message );}} // verify the control var Validator = function (formid, event) {Upload. fileChage (); var $ = function (id) {return document. getElementById (id);} if (event = undefined | event = null) {event = "submit";} this. isValidator = false; var base = this; var form =$ $ (Mid); var validArr = new Array (); var validObjTag = "v _"; // bind the Class attribute var spans = document. getElementsByTagName ("span"); for (var I = 0; I <spans. length; I ++) {if (spans [I]. id. indexOf (validObjTag )! =-1) spans [I]. className = "validator";} // bind the addEvent (form, event, function () {base. isValidator = base. valid (true); return base. isValidator;}, "Validator" + event); // verify the ID function validObjID (id) {return validObjTag + id ;} // verify the function validName (id) {try {var txt =$ ($ (id) of the object on the left side of the control ). parentNode. parentNode. firstChild ). prev (); var result = txt [0]. innerHTML. replace (':', ''); result = UrlHelp. myReplace (result, '',''); result = urlHelp. myReplace (result, '\ n', ''); return result;} catch (e) {return null; // txt. parentNode. previussibling. innerHTML. replace (':', '') ;}// bind the verification event this. bind = function (id, title, eventArr, afterFun) {if ($ (id) {if (! $ (ValidObjID (id) {var valid = validObjID (id); var span = document. createElement ("span"); span. setAttribute ("id", valid); span. setAttribute ("class", "validator"); $ (id ). insertAdjacentElement ("afterEnd", span); // alert ("verification control (id =" + validObjID (id) + ") does not exist! ");} Var count; validArr. push (new Array (id, title, eventArr, afterFun); addEvent ($ (id), "blur", function () {var result = true; for (var I = 0; I <eventArr. length; I ++) {result = base. doValid (id, title, eventArr [I] [0], eventArr [I] [1], eventArr [I] [2]); if (! Result) {break ;}} if (afterFun! = Null & afterFun! = Undefined & result) {afterFun ($ (id), $ (validObjID (id) ;}}// all object verification events this. valid = function (showAlert) {var pass = true; for (var I = 0; I <validArr. length; I ++) {var result = false; for (var j = 0; j <validArr [I] [2]. length; j ++) {result = base. doValid (validArr [I] [0], validArr [I] [1], validArr [I] [2] [j] [0], validArr [I] [2] [j] [1], validArr [I] [2] [j] [2]); if (! Result) {pass = false; // display the verification prompt if (showAlert = true) {var msg = validArr [I] [2] [j] [1]; if (msg = "*") {msg = "cannot be blank";} if (msg = "**") {msg = "required ";} var show = validArr [I] [1]; // validName (validArr [I] [0]); if (show! = Null) {$ (validArr [I] [0]). focus (); ValidatorAlert ("[" + show + "]" + msg); return pass ;}} break ;}var afterFun = validArr [I] [3]; if (afterFun! = Null & afterFun! = Undefined & result) {afterFun ($ (validArr [I] [0]), $ (validObjID (validArr [I] [0]);} return pass;} // an object verification event this. doValid = function (id, title, type, msg, reg) {if (msg = "*") msg = "*"; if (msg = "**") msg = "*"; switch (type) {case "empty": // return writeMsg (id, msg, ($ (id ). value = ""); break; case "regular": // return writeMsg (id, msg, ($ (id ). value! = ""&&! Reg. test ($ (id ). value); break; case "contrast": // compare return writeMsg (id, msg, ($ (id ). value! = $ (Reg). value); break; case "greater": // greater than var bvalue =$ $ (id). value. length> 0? ParseInt ($ (id). value): 0; var svalue =$ $ (reg). value. length> 0? ParseInt ($ (reg ). value): 0; return writeMsg (id, msg, (bvalue> svalue); break; case "smaller": // less than var xvalue =$ $ (id ). value. length> 0? ParseInt ($ (id). value): 0; var nvalue =$ $ (reg). value. length> 0? ParseInt ($ (reg ). value): 0; return writeMsg (id, msg, (xvalue <nvalue); break; case "max": // maximum value return writeMsg (id, msg, ($ (id ). value> reg); break; case "min": // return writeMsg (id, msg, ($ (id ). value <reg); break; case "number": // number reg =/^ \ d + $/; return writeMsg (id, msg, ($ (id ). value! = ""&&! Reg. test ($ (id). value); break; case "double": // number reg =/^ \ d + (\. \ d *)? $/; Return writeMsg (id, msg, ($ (id). value! = ""&&! Reg. test ($ (id ). value); break; case "maxlen": if (reg <0) {reg = 0;} var reg2 = new RegExp ('^. {0, '+ reg +'} $ '); if (msg = null | msg = "") {msg = "exceeds the maximum length" + reg ;} return writeMsg (id, msg, ($ (id ). value! = ""&&! Reg2.test ($ (id ). value); break; case "minlen": if (reg <0) {reg = 0;} var reg2 = new RegExp ('^. {'+ reg +', 2147483647} $ '); if (msg = null | msg = "") {msg = "minimum length cannot be less than" + reg ;} return writeMsg (id, msg, ($ (id ). value! = ""&&! Reg2.test ($ (id ). value); break; // Add another judgment event here} // write the error message function writeMsg (id, msg, result) {$ (validObjID (id )). style. color = 'red'; if (result) {$ $ (validObjID (id )). innerHTML = msg; return false;} else {// $ (validObjID (id )). style. color = 'green'; $ (validObjID (id )). innerHTML = ''; return true ;}}}

 

Call Method
$ (Document ). ready (function () {var vld = new Validator ("btn_login", "click"); vld. bind ("txt_username", "username", [["empty", "*"]); vld. bind ("txt_password", "password", [["empty", "*"]); vld. valid (); // bind the submission event addEvent (document. getElementById ("btn_login"), "click", function () {if (vld. isValidator) {login () ;}}, 'btn _ login_onchick ');})

 


Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.