首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在javascript中使用document.getelementbyname中的if条件

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

Stack Overflow用户
提问于 2015-03-14 15:20:16
回答 2查看 329关注 0票数 0

在这里,我面临着if条件的问题,它验证主题,而不是验证中字段。这里的复选框来自mysql。但它只给出了这样的来源。这里知道问题是if条件语句如何克服这个问题?有人能找出我的代码中有什么问题吗?我必须在这里做的事情。我希望每个人都能理解这个问题。我不明白为什么第二个if条件语句不起作用。

代码语言:javascript
复制
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;
      }
    }
  }
}
代码语言:javascript
复制
<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>

EN

回答 2

Stack Overflow用户

发布于 2015-03-14 15:28:36

因为如果第一个条件是false,那么它将停止执行代码,因为你有"return“。

每次都不会根据您的代码进行验证。

首先检查所有的主题,然后尝试,你会得到第二个,如果将工作。

票数 0
EN

Stack Overflow用户

发布于 2015-03-14 15:38:41

代码语言:javascript
复制
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.");
    }
  }
}
代码语言:javascript
复制
<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。

如果你正在尝试其他的东西,请留下评论,我会发布解决方案。此外,如果您有进一步的问题,请随时询问。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29046515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档