我在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
答案 0 :(得分:2)
如果您只想使用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。
答案 1 :(得分:0)
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;
}
}
是的,我会检查您的代码以及元素的名称。但在这里,这很有效。
答案 2 :(得分:0)
试试这个 -
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/
答案 3 :(得分:-1)
请更改代码,并将其替换为:
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;
}
}
}