Javascript Toggle Проверка всех имен вложенных массивов - PullRequest
0 голосов
/ 29 марта 2012

У меня возникла проблема при попытке создать функцию Javascript, которая проверяет все флажки в форме.

Пример флажков в моей форме выглядит как

<b>A:</b> <input type="checkbox" name="multipleForms[201][A]"><br>
<b>B:</b> <input type="checkbox" name="multipleForms[201][B]"><br>
<b>C:</b> <input type="checkbox" name="multipleForms[201][C]"><br>
<b>D:</b> <input type="checkbox" name="multipleForms[201][D]"><br>

<b>A:</b> <input type="checkbox" name="multipleForms[500][A]"><br>
<b>B:</b> <input type="checkbox" name="multipleForms[500][B]"><br>
<b>C:</b> <input type="checkbox" name="multipleForms[500][C]"><br>

Ито, что я хочу сделать, это иметь возможность передавать числа, такие как 201 и 500, в функцию Javascript и иметь все флажки с первым индексом массива, поскольку это целое число будет проверено.первые 4 флажка отмечены, и checkAll(500) будет иметь флажки для остальных 3 флажков.

Я бы не стал менять имена своих флажков, если это возможно, поскольку строковые индексы действительно важны для моего кода PHP.*

Заранее спасибо.

Кроме того, я бы предпочел иметь код не-JQuery.

Ответы [ 2 ]

1 голос
/ 29 марта 2012

Что-то в этом роде? : http://jsfiddle.net/RZPNG/6/

var checkboxes = document.getElementsByTagName('input');

function check(num) {
    for (var i = 0; i < checkboxes.length; i++) {
        if (parseInt(checkboxes[i].name.split('[')[1]) === num) {
            checkboxes[i].checked = 'checked';
        }                
    }
}

check(201);​
0 голосов
/ 29 марта 2012

Должно сработать что-то вроде следующего:

function checkBoxes(form, s) {
  var input, inputs = form.getElementsByTagName('input');
  var re = new RegExp(s);

  for (var i=0, iLen=inputs.length; i<iLen; i++) { 
    input = inputs[i];
    if (input.type == 'checkbox' && re.test(input.name)) {
      input.checked = true;
    } else {
      input.checked = false;
    }
  }
}

Вы также можете использовать querySelectorAll, но поддержка пока не такая распространенная:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...