日期:2014-05-16 浏览次数:20688 次
<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;
}
}
}
)();