私はclass="required"
で各入力を通過するfor
ループを持っていて、空であればその背景色が変わります。また、ページの一部にメッセージを追加します。「赤色の背景色のフィールドは必須です。しかし、私はそのメッセージを一度表示したいだけです。 5つのフィールドが空であっても、1つのメッセージしか表示されません。助言がありますか?部分を1回だけ実行しますか?
HERESに私のコード:
<script type="text/javascript" >
window.onload = function() {
document.getElementById("formID").onsubmit = function() {
var fields = this.getElementsByClassName("validate"),
sendForm = true;
for(var i = 0; i < fields.length; i++) {
if(!fields[i].value) {
fields[i].style.backgroundColor = "#ffb8b8";
var inst = document.getElementById('inst');
var reason = inst.insertRow(-1);
var cell1=reason.insertCell(0);
cell1.innerHTML = '<p>Fields with a red background are required and empty. Please fill them in and try resubmitting. Thanks.</p>';
inst.appendChild(reason);
sendForm = false;
}
else {
fields[i].style.backgroundColor = "#fff";
}
}
if(!sendForm) {
return false;
}
}
}
</script>
jQueryはオプションですか? – asawyer
@Asawyerいいえ、申し訳ありません... –