Функция Javascript не работает с массивом - PullRequest
1 голос
/ 07 января 2011

У меня есть эта функция, которая перебирает массив флажков, проверяющих, равно ли значение полей в текстовом поле, я не знаю, что не так.

function checkValue(contain)  {  
        var boxes = document.getElementsByTagName("input");  
    for (var i = 0; i < boxes.length; i++) {  
        if (boxes[i].name == "vote[]") {  
            if (boxes[i].value.indexOf(contain.value) != -1) {  
            boxes[i].checked = true;  
        }  
    }   
}  
}

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

 OnClick="uncheckAll(); checkValue(document.getElementsByName("countrylist"));"

этот код находится в стороне от эха в php, который похож на это эхо '';

Ответы [ 4 ]

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

Нельзя использовать одинаковые кавычки в HTML.

OnClick="uncheckAll(); checkValue(document.getElementsByName(\'countrylist\'));"

Просто экранируйте одинарные кавычки, как показано на рисунке, поскольку PHP предоставляет простой механизм экранирования.

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

1) Обновите вызов inlince, чтобы использовать одинарные кавычки:

checkValue(document.getElementsByName('countrylist'))

2) Используйте document.getElementsByName, чтобы сделать функцию немного лучше:

function checkValue(contain)  
{           
    var boxes = document.getElementsByName("vote[]");
    for (var i = 0; i < boxes.length; i++) 
    {     
        boxes[i].checked = (boxes[i].value == contain.value);
    }   
} 
0 голосов
/ 07 января 2011

Я думаю, что в вашем javascript может быть проблема с названием поля, в котором вы голосуете [].

Проходит ли оно когда-либо условие:

if (boxes[i].name == "vote[]") {
0 голосов
/ 07 января 2011

передаваемый аргумент contain - это массив, а не строка.в чем может быть проблема?

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