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 ');})