Получение значений из массива, созданного с помощью getElementsByClassName () - PullRequest
1 голос
/ 14 февраля 2012

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

function wholeFormValid() {
var inp = document.getElementsByClassName('userInput'); 
    //userInput is a class name i provide to all my non-hidden input fields.
    //I have over 20 hidden values (I need to use hidden values to store state in a session).

    //Wanted to print out what my function is getting. I keep seeing undefined values.
var string= "justToInitializeThis";
for(var m in inp) {
    string = string + " " + inp.value;
}
alert(string);

    //Actual function that will be used once I track down the bug.
for(var i in inp) {

    if(inp.value != "") {
        if(!(/^[0-9]+$/.test(inp.value))) {
            return false;
        }
    }
}
return true;

}

Функция получает правильные поля вводаназад, я могу судить по моим различным страницам, и они различаются по количеству входных данных, которые может дать пользователь.Но я не могу понять, почему все мои значения возвращаются как нулевые, а не введенные пользователем.Я довольно плохо знаком с HTML и Javascript, и мне просто нужна вторая пара глаз на это :) Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 14 февраля 2012

Используйте это

var inp = document.getElementsByClassName('userInput'); 

var string= "justToInitializeThis";
for(var i=0; i < inp.length; i++) {
    string = string + " " + inp[i].value;
}
alert(string);

То же самое для другого цикла

1 голос
/ 14 февраля 2012

Изменение:

for(var m in inp) {
    string = string + " " + inp.value;
}

Кому:

for(var m in inp) {
    string = string + " " + inp[m].value;
}

цикл for ... in перебирает свойства объекта

https://developer.mozilla.org/en/JavaScript/Reference/Statements/for...in

...