您可以在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