Javascript验证不起作用——只要一个if语句为true,它就会停止所有if语句
Javascript validation is not working - as soon as one if statement is true, it stops all if statements?
1st-如果填写了一个文本框,代码将停止,不再继续。
第二个-通过电子邮件,如果第一个是真的,它不会检查第二个if语句。
我认为第一个和第二个问题都是一样的,只要它看到一件事是真的,它就会停止。
HTML
<form name="form" onSubmit="return validation()" method="post">
<p>
<label class="tittle">Name:</label>
<span>
<input type="text" name="firstname"
placeholder="First Name" class="info"
size="25" maxlength="25"
onBlur="return validateFirstName()">
<label class="fillerror" id="fillFirst">
First name is required
</label>
</span>
<span>
<input type="text" name="lastname"
placeholder="Last Name" class="info"
size="25" maxlength="25"
onBlur="return validateLastName()">
<label class="fillerror" id="fillLast">
Last name is required
</label>
</span>
</p>
<p>
<label class="tittle">Email:</label>
<span>
<input type="text" name="newEmail"
placeholder="Email" class="info"
size="25" maxlength="50"
onBlur="return validateEmail()">
<label class="fillerror" id="fillemail">
Email address is required
</label>
</span>
<span>
<input type="text" name="retypedNewEmail"
placeholder="Confirm Email" class="info"
size="25" maxlength="50"
onBlur="return asd()">
<label class="fillerror" id="fillemailConf">
Email address confirmation is required
</label>
<label class="fillerror" id="fillemailConfirm">
Email addresses do not match
</label>
</span>
</p>
<p>
<label class="tittle">Password:</label>
<span>
<input type="password" name="newPassword"
placeholder="Password" class="info"
size="25" maxlength="15"
onBlur="return validatePassword()">
<label class="fillerror" id="fillpass">
Password is required
</label>
</span>
<span>
<input type="password"
name="retypedNewPassword"
placeholder="Confirm Password" class="info"
size="25" maxlength="15"
onBlur="return validateConfPassword()">
<label class="fillerror" id="fillpassConf">
Password confirmation is required
</label>
</span>
</p>
<p>
<span id="sign">
<input type="checkbox" name="sign" checked>
Sign up for our Emails
</span>
<input type="button" name="register"
value="Register" class="register"
onClick="return validateFirstName(),
validateLastName(), validateEmail(),
validateConfEmail(), validatePassword(),
validateConfPassword();">
</p>
</form>
JavaScript
function xValidate(inbox, fill)
{
inbox.style.backgroundColor="rgba(255, 0, 0, .1)";
inbox.style.borderLeft="3px solid red";
fill.style.display="block";
}
function yValidate(inbox, fill)
{
inbox.style.backgroundColor="white";
inbox.style.borderLeft="3px solid rgb(169, 184, 1)";
fill.style.display="none";
}
function validateFirstName()
{
var frstnm = document.forms["form"] ["firstname"].value;
if (frstnm==null || frstnm=="" || frstnm==" ")
{
var inbox = document.forms["form"] ["firstname"];
var firstname = document.getElementById("fillFirst");
xValidate(inbox, firstname);
}
else
{
var inbox = document.forms["form"] ["firstname"];
var firstname = document.getElementById("fillFirst");
yValidate(inbox, firstname);
}
}
function validateLastName()
{
var lstnm = document.forms["form"] ["lastname"].value;
if (lstnm==null || lstnm=="" || lstnm==" ")
{
var inbox = document.forms ["form"] ["lastname"];
var lastname = document.getElementById("fillLast");
xValidate(inbox, lastname);
}
else
{
var inbox = document.forms ["form"] ["lastname"];
var lastname = document.getElementById("fillLast");
yValidate(inbox, lastname);
}
}
function validateEmail()
{
var eml = document.forms["form"] ["newEmail"].value;
if (eml==null || eml=="" || eml==" ")
{
var inbox = document.forms ["form"] ["newEmail"];
var newEmail = document.getElementById("fillemail");
xValidate(inbox, newEmail);
}
else
{
var inbox = document.forms ["form"] ["newEmail"];
var newEmail = document.getElementById("fillemail");
yValidate(inbox, newEmail);
}
}
function validateConfEmail()
{
var confeml = document.forms["form"] ["retypedNewEmail"].value;
if (confeml==null || confeml=="" || confeml==" ")
{
var inbox = document.forms ["form"] ["retypedNewEmail"];
var newEmail = document.getElementById("fillemailConf");
xValidate(inbox, newEmail);
}
else
{
var inbox = document.forms ["form"] ["retypedNewEmail"];
var newEmail = document.getElementById("fillemailconf");
yValidate(inbox, newEmail);
}
var confirmEmail = document.forms["form"] ["newEmail"].value;
if (document.forms["form"] ["retypedNewEmail"].value != document.forms["form"] ["newEmail"].value)
{
var inbox = document.forms ["form"] ["retypedNewEmail"];
var newEmail = document.getElementById("fillemailConf");
xValidate(inbox, newEmail);
}
else
{
var inbox = document.forms ["form"] ["retypedNewEmail"];
var newEmail = document.getElementById("fillemailConf");
yValidate(inbox, newEmail);
}
}
我在Firefox和IE上尝试了您的代码,并为每个函数添加了警报。当点击"注册"按钮时,在Firefox中,所有警报都会显示,而在IE中,只有firstName警报会出现。
原因::函数xValidate和yValidate在IE中出现错误。
第行::inbox.style.backgroundColor="rgba(255, 0, 0, .1)";
SCRIPT380:属性值无效。
我建议,检查你的控制台是否有任何JS错误,它应该可以解决你的问题。
希望这能有所帮助!
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 如何在ReactJS JSX中执行嵌套的if-else语句
- 如何在 API 调用后和 if 语句中启用提交按钮
- 带有多个elseif的Javascript if语句
- Sharepoint JScript if语句未执行
- Javascript:If-then语句在函数中不起作用
- for循环中的javascript if语句找不到==
- jquery if语句返回return wong语句
- 在if语句下的html中使用javascript变量
- 将错误与if语句混淆
- 如何检查if/else语句中的随机条件
- 循环通过数组的If语句不起作用
- jQuery模板中的If语句
- 如何从数据库中回显If语句
- 如何减少if语句的数量
- Node.js-承诺和锥形语句(if、switch等)-如何构建
- 如何在嵌套ng重复指令中使用控制语句(if语句)
- 如何创建语句if包含"&"
- If语句- If主体有一个类remove在滚动原生javascript
- Javascript中的if语句- if - else问题