簡體   English   中英

如何在JavaScript中選中復選框

[英]how to check checkboxes in javascript

我在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

如果您只想使用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;
}

這是工作示例

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/

嘗試這個-

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/

請更改代碼,並替換為:

   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;
      }
   }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM