[英]Display all validation messages inline at once onsubmit
I would like JavaScript to display all the validation messages at once when the submit button is clicked. 我希望JavaScript在单击“提交”按钮时立即显示所有验证消息。
Customer Name: TextBox: *Customer Name must not be blank Address : TextBox: *Address must not be blank City : TextBox: *City must not be blank
But it displays only one message at a time, every time the submit button is clicked. 但是,每次单击“提交”按钮时,一次仅显示一条消息。
This is my code. 这是我的代码。
<form method="post" name="customer" action="newcustcheck.php" onsubmit="return Validate()" >
<table width="200">
<tr>
<td><div class="message">*</div>Customer Name:</td>
<td><input type="text" name="name" ></td>
<td> <label class="message" id="message" ></td>
</tr><tr>
<td><div class="message">*</div>Address:</td>
<td><input type="text" name="address" ></td>
<td> <label class="message" id="message1"></td>
</tr>
<tr>
<td><div class="message">*</div>City:</td>
<td><input type="text" name="city" ></td>
<td> <label class="message" id="message2"></td>
</tr>
JavaScript 的JavaScript
function Validate(){
var x=document.forms["customer"]["name"].value;
var y=document.forms["customer"]["address"].value;
var z=document.forms["customer"]["city"].value;
if(x==null || x==""){
document.getElementById('message').style.visibility="visible";
document.getElementById('message').innerHTML="Customer Name must not be blank";
return false;
}
else{
document.getElementById('message').style.visibility="hidden";
}
//T8
if(y==null || y==""){
document.getElementById('message1').style.visibility="visible";
document.getElementById('message1').innerHTML="Address Field must not be blank";
return false;
}
else{
document.getElementById('message1').style.visibility="hidden";
}
//T12
if(z==null || z==""){
document.getElementById('message2').style.visibility="visible";
document.getElementById('message2').innerHTML="City Field must not be blank";
return false;
}
else{
document.getElementById('message2').style.visibility="hidden";
}
You are returning from the validate
function as soon as you find first invalid
input, you should keep looking instead and return only after every input field is validated. 一旦找到第一个
invalid
输入,您将从validate
函数返回,您应该继续查找并仅在验证每个输入字段之后才返回。
function Validate(){ var x=document.forms["customer"]["name"].value; var y=document.forms["customer"]["address"].value; var z=document.forms["customer"]["city"].value; var isValid = true; if(x==null || x==""){ document.getElementById('message').style.visibility="visible"; document.getElementById('message').innerHTML="Customer Name must not be blank"; isValid = false; } else{ document.getElementById('message').style.visibility="hidden"; } //T8 if(y==null || y==""){ document.getElementById('message1').style.visibility="visible"; document.getElementById('message1').innerHTML="Address Field must not be blank"; isValid = false; } else{ document.getElementById('message1').style.visibility="hidden"; } //T12 if(z==null || z==""){ document.getElementById('message2').style.visibility="visible"; document.getElementById('message2').innerHTML="City Field must not be blank"; isValid = false; } else{ document.getElementById('message2').style.visibility="hidden"; } return isValid; }
<form method="post" name="customer" action="newcustcheck.php" onsubmit="return Validate()" > <table width="200"> <tr> <td><div class="message">*</div>Customer Name:</td> <td><input type="text" name="name" ></td> <td> <label class="message" id="message" ></td> </tr><tr> <td><div class="message">*</div>Address:</td> <td><input type="text" name="address" ></td> <td> <label class="message" id="message1"></td> </tr> <tr> <td><div class="message">*</div>City:</td> <td><input type="text" name="city" ></td> <td> <label class="message" id="message2"></td> </tr> </table> <input type=submit /> </form>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.