繁体   English   中英

如何在JavaScript中的document.getelementbyname中使用if条件

[英]How to use if condition in document.getelementbyname in javascript

在这里,我面临的问题是,如果条件对主题有效而对中间字段无效。 这里的复选框来自mysql。 但是它仅提供这样的源。 这里知道问题在于是否只有条件才能解决这个问题?可以找出我的代码中的问题是什么吗?我必须在这里做什么。我希望每个人都能理解问题。我不明白为什么第二个如果有条件的话语句不起作用。

 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> 

因为如果第一个条件为假,那么它将因为您“返回”而停止执行代码。

一次,两个都将无法按照您的代码进行验证。

首先检查所有主题,然后再尝试,如果可以使用,您将获得第二个主题。

 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> 

你犯的错误很愚蠢。 每当您使用返回键时,它将退出该功能,并且不会处理下面的代码或下一个代码。 此外,我认为您正在尝试验证表格,就像是否选择了至少一个主题和媒介一样,表格是有效的。 您要么要提醒用户。 最简单的方法是首先在函数内部获取两个变量,一个用于主题,另一个用于介质,并将它们都设置为false,这意味着什么都没有选择。 现在运行循环,如果选中此复选框,则将相关变量设置为true,这意味着至少检查了一个您想要的内容。 在两个循环之后,现在为以下三种状态编写一个if-else-then条件:都为true->至少检查了一个主题和媒介,一个为true,一个为false->没有选择主题或媒介。 均为假->未选择任何内容。

如果您尝试其他操作,请发表评论,我将发布解决方案。 此外,请随时询问您是否还有其他问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM