日期:2014-05-16 浏览次数:20633 次
<script src="validate.js" ></script> <style> input.invalid{background: #faa;} input.valid{background: #afa;} </style> <form> name : <input type="text" name="name" required><br> email: <input type="text" name="email" pattern="^\s*\w+@\w+\.\w+\s*$"><br> zipcode : <input type="text" name="zipcode" pattern="^\s*\d{5}\s*$"><br> unvalidate : <input type="text"><br> <input type="submit" value="submit query"> </form>
( function(){ if(window.addEventListener) window.addEventListener("load", init, false); else if(window.attachEvent) window.attachEvent("onload", init); function init(){ for(var i = 0;i < document.forms.length;i++){ var f = document.forms[i]; var needsValidation = false; for(var j = 0;j < f.elements.length; j++){ var e = f.elements[j]; if(e.type != "text") continue; var pattern = e.getAttribute("pattern"); var required = e.getAttribute("required") != null; if(required && !pattern){ pattern = "\\S"; e.setAttribute("pattern", pattern); } if(pattern){ e.onchange = validateOnChange; needsValidation = true; } } if(needsValidation) f.onsubmit = validateOnSubmit; } } function validateOnChange(){ var textfield = this; var pattern = textfield.getAttribute("pattern"); var value = this.value; if(value.search(pattern) == -1) textfield.className = "invalid"; else textfield.className = "valid"; } function validateOnSubmit(){ var invalid = false; for(var i = 0; i < this.elements.length;i++){ var e = this.elements[i]; if(e.type == "text" && e.onchange == validateOnChange){ e.onchange(); if(e.className == "invalid") invalid = true; } } if(invalid){ alert( "The form is incompletely or incorrectly filled out.\n"+ "Please correct the hightlighted fields and try again."); return false; } } } )();