简体   繁体   English

提交时立即内联显示所有验证消息

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM