您可以在required
属性添加到所有的领域,但在浏览器这个作品只支持HTML5的形式。
对于其他人,很容易:
<form action="..." method="..." onSubmit="return validate(this);">
<!-- input fields here -->
</form>
还要确保该required
属性添加到任何所需的字段。然后......
<script type="text/javascript">
function validate(form) {
var inputs, len, i;
if(document.querySelectorAll) {
inputs = form.querySelectorAll('input[required], select[required], textarea[required]');
}
else {
inputs = [];
var tags = ['input','select','textarea'], tag, elms;
while(tag = tags.shift()) {
elms = form.getElementsByTagName(tag);
len = elms.length;
for(i=0; i<len; i++) if(elms[i].getAttribute("required")) inputs.push(elms[i]);
}
}
len = inputs.length;
for(i=0; i<len; i++) {
if(inputs[i].value == '') {
alert("Please fill out all fields");
// customise error stuff here
return false;
}
}
return true;
}
</script>
注意,该解决方案是在原JS,因此保证比任何jQuery的解决方案快许多倍。
确实是一个巧妙的解决方案!我从来没有想过使用一个标志('var errors')。 – Terry 2012-09-22 12:30:30