Использование функции JavaScript с массивом флажков - PullRequest
1 голос
/ 07 января 2011

, поэтому у меня есть имя массива флажков «voice []», и я хочу вызвать функцию, чтобы отметить все из них, атм моя функция выглядит так

function checkAll(field)  
{  
    for (i = 0; i < field.length; i++)  
        field[i].checked = true ;  
}

, и я называю это так

checkAll(document.form.vote)

но это не работает ... wutdo?

Спасибо, Бен

ps Я пытался сделать

checkAll(document.form.vote[]) 

, и это неработа.

Ответы [ 4 ]

3 голосов
/ 07 января 2011

Попробуйте:

checkAll(document.form['vote[]'])

Объяснение: [] является частью имени, но если вы напишите его как form.vote[], оно будет интерпретировано как JavaScript (вероятно, недопустимый),К счастью, в JavaScript есть два способа доступа к свойствам объекта: нотация с точками, foo.bar и нотация с массивами, foo['bar'].Последнее пригодится, если свойство не является допустимым идентификатором JavaScript.

Дальнейшее предложение: Поскольку мы не знаем, как ваш HTML-код выглядит как document.form, также может не работать.Предлагаю дать форме удостоверение личности и позвонить:

checkAll(document.getElementById('yourFormID')['vote[]'])

Обновление:

У меня работает: DEMO

2 голосов
/ 16 ноября 2012

Попробуйте сделать это с помощью фильтра только с флажком, т.е. type='checkbox'

var boxes = document.getElementsByTagName('input');
    if(boxes.type='Checkbox'){
        for (var i = 0; i < boxes.length; i++) {
            if (boxes[i].name == 'vote[]' ) {
                boxes[i].checked = true;
            }
        }
    }
2 голосов
/ 15 апреля 2011

Несмотря на то, что оригинальный плакат смог заставить это работать, другой способ (исключая вызов getElementsByTagName) будет:

checkAll(document.formname.elements['vote[]'])

Надеюсь, это поможет кому-то в будущем. :)

0 голосов
/ 07 января 2011

Попробуйте сделать это с document.getElementsByName вместо:

checkAll(document.getElementsByName('vote[]'));

Если это не сработает, попробуйте это, просматривая все элементы input.

var boxes = document.getElementsByTagName('input');
for (var i = 0; i < boxes.length; i++) {
    if (boxes[i].name == 'vote[]') {
        boxes[i].checked = true;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...