Php javascript验证工作不正常
只有一个条件被执行,另一个则不被执行。请提供解决方案Php javascript验证工作不正常,php,javascript,Php,Javascript,只有一个条件被执行,另一个则不被执行。请提供解决方案 function a() { var x=document.forms["addform"]["gender"].value; if (x==null || x==""){ alert("Enter gender"); return false; } var y=document.forms["addform"]["count"].value; if (y==null
function a() {
var x=document.forms["addform"]["gender"].value;
if (x==null || x==""){
alert("Enter gender");
return false;
}
var y=document.forms["addform"]["count"].value;
if (y==null || y==""){
alert("enter country");
return false;
}
}
一个条件起作用,另一个条件不起作用,这意味着您可能将不起作用的元素名弄错了
gender
和count
应该是输入或选择元素的名称。因此,如果您使用selects,您的HTML应该与此类似:
<select name="gender"> <--- name = gender
<option value="">Please select</option>
<option value="M">Male</option>
<option value="F">Female</option>
</select>
<select name="count"> <--- name = count
<option value="">Please select</option>
<option value="USA">USA</option>
<option value="Canada">Canada</option>
</select>
两个警报都未触发的原因(如果您的元素被正确引用)是因为您正在执行return false代码>在每个if中。这将防止函数中触发更多代码,因此如果没有机会触发第二个
在我的代码中,我添加了一个变量,然后我返回false如果执行了if
,则在函数末尾执行code>。这使两个警报都可以触发
function a()
{
var submitform = true, x=document.forms["addform"]["gender"].value, y=document.forms["addform"]["count"].value;
if (x===null || x=="") {
alert("Enter gender");
submitform = false;
}
if (y===null || y=="") {
alert("enter country");
submitform = false;
}
// Added an if here
if (submitform === false) {
return false;
}
}
谢谢
弗雷德里克
编辑:使用==
检查相同值是一种更好的做法。更多信息,请参见stackoverflow问题。你能发布你的相关html代码吗?添加更多的代码,礼貌一点,确实能让你得到答案!:)非常感谢。在16岁的时候,我尝试着练习向他人解释我自己,因为这对我上大学和高中都有帮助,因为如果我能在这个网站上向我的朋友和人们解释这些话题和想法,这将帮助我更好地理解这些话题和想法。@Fred很好的心态,进一步解释就是你可以有尽可能多的“回报”值,但重要的是要注意,一旦函数到达其第一个“return”,它将排除函数的其余部分。考虑到你的功能的最终陈述,不管它位于哪里。
function a()
{
var submitform = true, x=document.forms["addform"]["gender"].value, y=document.forms["addform"]["count"].value;
if (x===null || x=="") {
alert("Enter gender");
submitform = false;
}
if (y===null || y=="") {
alert("enter country");
submitform = false;
}
// Added an if here
if (submitform === false) {
return false;
}
}