[英]JavaScript one Statement not Working
I am having trouble with the gender check. 我在性别检查方面遇到麻烦。 No matter what I do it always registers true unless I only have it check for one condition.
不管我做什么,除非我仅检查一个条件,否则它始终会记录为真。 IE: If I enter m or f it does not register.
IE:如果输入m或f,则不会注册。 But if I write a condition only checking for the letter m it will work.
但是,如果我只写一个条件来检查字母m,它将起作用。
function Validate()
{
var name= document.getElementById('name').value;
var age= document.getElementById('age').value;
var sex= document.getElementById('sex').value;
var error ="";
var check = 0;
if(name=="")
{
check=1;
error= error +" Please enter a valid name \n";
}
if(age>100 || age<1)
{
check=1;
error= error +" Please enter a valid age \n";
}
if(sex != "f" || sex !="m")
{
check=1;
error= error +" Please enter a valid sex \n";
}
if (check>0)
{
alert(error);
check=0;
return false;
}
}
HTML: HTML:
<form action="cartoon.html" method="post" onsubmit="return Validate()">
<br>
Name
<input type="text" placeholder="last name" id="name"/>
<input type="text" placeholder="first name" id="name"/>
<input type="text" placeholder="middle initial"/>
</br>
<br>
Age
<input type="number" placeholder="Age" id="age"/>
</br>
<br>
sex
<input type="text" placeholder="Sex" id="sex"/>
</br>
<input type="submit" value="login"/>
</form>
尝试:
if(sex != "f" && sex !="m")
if(sex != "f" || sex !="m"){
check=1;
error= error +" Please enter a valid sex \n";
}
If sex is F first part is false but second is true because sex is not M -> statement is true -> error 如果sex为F,则第一部分为false,但第二部分为true,因为sex不是M->语句为true->错误
Same goes for M input. M输入也一样。
you need to make this change: 您需要进行以下更改:
if(sex != "f" && sex !="m"){
check=1;
error= error +" Please enter a valid sex \n";
}
It is a boolean logic error 这是布尔逻辑错误
More complex variant 更复杂的变体
if (!(sex == 'm' || sex == 'f')) {
check = 1;
error= error + " Please enter a valid sex \n";
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.