所以,我正在使用联系表单的页面上工作,我想检查字段是否为空。我在下面使用这个简单的代码,但它只适用于第一个if。它只显示"我想知道你是谁"当我点击提交。它甚至没有看到其他if语句!
function validation() {
var name = document.getElementById("name").value;
var email = document.getElementById("email").value;
var subject = document.getElementById("subject").value;
var message = document.getElementById("message").value;
if(name == null || name == "") {
document.getElementById("name-error").innerHTML = "I want to know who you are!";
return false;
}
if(email == null || email == "") {
document.getElementById("email-error").innerHTML = "Give me your email!";
return false;
}
if(subject == null || subject == "") {
document.getElementById("subject-error").innerHTML = "I need a subject!";
return false;
}
if(message == null || message == "") {
document.getElementById("message-error").innerHTML = "Don't forget your message!";
return false;
}
}
这是HTML:
<form name="contact" id="contact" action="./assets/send.php" method="post" id="form">
<label>Full name</label>
<input type="text" name="name" id="name"><span id="name-error"></span>
<label>Email</label>
<input type="text" name="email" id="email"><span id="email-error"></span>
<label>Subject</label>
<input type="text" name="subject" id="subject"><span id="subject-error"></span>
<label>Message</label>
<textarea name="message" id="message"></textarea><span id="message-error"></span>
<button onclick="return validation()" type="submit" name="send" id="send">Send</button>
</form>
答案 0 :(得分:2)
因为您在return false;
内使用if()
,所以控件在执行if()
块后返回。
if(name == null || name == "") {
document.getElementById("name-error").innerHTML = "I want to know who you are!";
return false; // control returns from the function here.
}
如果您可以在函数内部保留局部变量并在函数末尾返回它,那会更好。最初将其设置为true
,将其更改为false
块内的if(){}
,并将其作为函数的最后一个语句返回。
function validation() {
var isValid = true;
if(someThingWrong) {
// execute your logic here
isValid = false;
}
return isValid;
}
答案 1 :(得分:0)
因为return false;
在所有if条件中,当满足其中一个条件时,它会停止在其上执行。如果必须使用return语句,请在所有if语句之后将其放在最后。