【问题标题】:how to check checkboxes in javascript如何检查javascript中的复选框
【发布时间】:2014-09-16 11:40:39
【问题描述】:

我在 html 中有三个复选框。
在 Javascript 中,我有变量 newspaper = "jang,News,Dawn";

现在我想检查基于报纸值的复选框,如果它只包含 jang,那么只有 jang 复选框应该被选中,如果它包含 jang,News,Dawn,那么所有三个复选框都应该被选中。

我写的代码总是检查最后两个错误的复选框。

我的代码是:

var newspaper = document.forms[0].newspaper;
var a = "Jang,News";

var news = ["Jang", "Dawn", "News"]
for (i = 0; i < news.length; i++)
{
    if (a.indexOf(news[i]))
    {
        newspaper[i].checked = true;
    }
}
<input type="checkbox" name="newspaper[]"  value="Jang">Jang<br />
<input type="checkbox" name="newspaper[]"  value="Dawn">Dawn<br />
<input type="checkbox" name="newspaper[]"  value="News">The News

【问题讨论】:

  • 还有 a.indexOf(news[i]) >= 0) 允许匹配第一个字符

标签: javascript asp.net-mvc checkbox nested-checkboxes


【解决方案1】:

如果你只想使用 Javascript 来做,你必须在你的代码中做一些改变:

将所有复选框的名称更改为“报纸”(不带方括号)

<input type="checkbox" name="newspaper"  value="Jang"/>Jang<br />
<input type="checkbox" name="newspaper"  value="Dawn"/>Dawn<br />
<input type="checkbox" name="newspaper"  value="News"/>The News

检查indexOf返回值不等于-1:

if (a.indexOf(news[i]) != -1) {
    newspaper[i].checked = true;
}

这里是working demo

【讨论】:

    【解决方案2】:
    var newspaper = document.forms[0]["newspaper[]"];
    var a = "Jang,News";
    for (i = 0; i < newspaper.length; i++)
    {
           if(a.indexOf(newspaper[i].value) > -1){
                 newspaper[i].checked = true;
              }
    }
    

    是的,我会检查您的代码和元素的名称。但在这里,这行得通。

    http://jsfiddle.net/3qeeox0a/

    【讨论】:

      【解决方案3】:

      试试这个-

      var newspaper = document.forms[0].newspaper;
          var a = "Jang,News";
      
          var news = ["Jang","Dawn", "News"]
          for (i = 0; i < news.length; i++)
          {
              if (a.indexOf(news[i]) != 1)
              {
                  newspaper[i].checked = true;
              }
          }
      

      小提琴:-http://jsfiddle.net/um0y5wrp/9/

      【讨论】:

        【解决方案4】:

        请更改代码,并替换此代码:

           if (a.indexOf(news[i]))
                    {newspaper[i].checked = true; 
           }
        

        作者:

        for(j = 0; j < newspaper.length; j++){
           if(newspaper[j].value == newspaper[i].value){
              if (a.indexOf(news[i])){
                 newspaper[j].checked = true;
              }
           }
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-06-13
          • 2016-05-26
          • 1970-01-01
          • 2014-02-07
          • 2014-06-04
          • 2023-03-09
          • 1970-01-01
          相关资源
          最近更新 更多