在这里,我面临着if条件的问题,它验证主题,而不是验证中字段。这里的复选框来自mysql。但它只给出了这样的来源。这里知道问题是if条件语句如何克服这个问题?有人能找出我的代码中有什么问题吗?我必须在这里做的事情。我希望每个人都能理解这个问题。我不明白为什么第二个if条件语句不起作用。
function check() {
//alert('done')
var chk = document.getElementsByName('subject[]');
var reg = document.getElementsByName('regional[]');
var len = chk.length;
var regl = reg.length;
//alert(len);
if (len) {
for (i = 0; i < len; i++) {
if (chk[i].checked) {
return true;
} else {
alert('please select the subject');
return false;
}
}
}
if (regl) {
for (i = 0; i < regl; i++) {
if (reg[i].checked) {
return true;
} else {
alert('please select the regional');
return false;
}
}
}
}<form name="f1" action="" method="post">
Subject
<input type='checkbox' name='subject[]' value='science'>science<br/>
<input type='checkbox' name='subject[]' value='maths'>maths<br/>
Medium
<input type='checkbox' name='regional[]' value='Hindi'>Hindi<br/>
<input type='checkbox' name='regional[]' value='english'>english<br/>
<input type="submit" name="land" class="butt" value="SUBMIT" onClick="return check();">
</form>
发布于 2015-03-14 15:28:36
因为如果第一个条件是false,那么它将停止执行代码,因为你有"return“。
每次都不会根据您的代码进行验证。
首先检查所有的主题,然后尝试,你会得到第二个,如果将工作。
发布于 2015-03-14 15:38:41
function check() {
var subjects = document.getElementsByName("subject[]"),
regionals = document.getElementsByName('regional[]'),
subjectSelected = false,
regionalSelected = false;
// check subject
for(var i=0;i<subjects.length;i++){
if(subjects[i].checked){subjectSelected = true;}
}
// check medium
for(var i=0;i<regionals.length;i++){
if(regionals[i].checked){regionalSelected = true;}
}
if(!subjectSelected || !regionalSelected){
if(!subjectSelected){ // subject not selected
alert("Please select a subject.");
}else{ // medium not selected
alert("Please select a regional.");
}
}
}<form name="f1" action="" method="post">
Subject
<input type='checkbox' name='subject[]' value='science'>science<br/>
<input type='checkbox' name='subject[]' value='maths'>maths<br/>
Medium
<input type='checkbox' name='regional[]' value='Hindi'>Hindi<br/>
<input type='checkbox' name='regional[]' value='english'>english<br/>
<input type="submit" name="land" class="butt" value="SUBMIT" onClick="return check();">
</form>
你犯的错误很愚蠢。无论何时使用return键,它都会退出函数,并且不会处理下面或下一段代码。此外,我认为您正在尝试验证表单,就像如果至少选择了一个主题和媒体,表单是有效的。要么你想提醒用户。简单的方法是首先在函数中获取两个变量,一个用于subject,另一个用于medium,并将这两个变量都设置为false,这意味着没有选择任何内容。现在运行一个循环,如果复选框被选中,则将相关变量设置为true,这意味着至少有一个变量被选中。在两次循环之后,现在为以下三种状态写一个if-else-then条件:两者都是真的,至少一个主题和媒体被选中一个true,一个假->主题或媒体没有被选择。both false -> nothing selected。
如果你正在尝试其他的东西,请留下评论,我会发布解决方案。此外,如果您有进一步的问题,请随时询问。
https://stackoverflow.com/questions/29046515
复制相似问题