2014-09-16 5 views
0

У меня есть три флажка в html.
In Javascript У меня есть переменная newspaper = "jang,News,Dawn";Как проверить флажки в javascript

Теперь я хочу установить флажки на основе значений газеты, если в них содержится только 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 
+1

также a.indexOf (новости [я])> = 0), чтобы матч на первый символ – AlexanderBrevig

ответ

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

Да, я бы рассмотрел ваш код и имена ваших элементов. Но здесь это работает.

http://jsfiddle.net/3qeeox0a/

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.

0

Попробуйте this-

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/

Смежные вопросы