Javascript для цикла на массив полей ввода проблема с document.getElementById - PullRequest
0 голосов
/ 19 августа 2010

У меня есть серверный скрипт, делающий для меня количество текстовых полей. Когда я хочу, чтобы пользователь заполнил их и представил данные. Я знаю, сколько полей, так как сервер также отправляет счетчик.

Затем я пытаюсь соединить их в длинную строку с пробелом между ними. Но у меня возникают проблемы с получением значения массива.

Лучше объяснить с помощью кода.

Это работает

        <script>
function Submit() {
    var spacer = ":";
    var mycount = document.getElementById('counter').value;
    var usertext = '';
    var x=0;
    for(x = 0; x **<= 2**; x++){
        usertext = usertext + document.getElementById('description[' + x + ']').value + spacer ;
    }
</script>

Это не работает.

    <script>
function Submit() {
    var spacer = ":";
    var mycount = document.getElementById('counter').value;
    var usertext = '';
    var x=0;
    for(x = 0; x **<= mycount**; x++){
        usertext = usertext + document.getElementById('description[' + x + ']').value + spacer ;
    }
</script>

Это моё тело

    <textarea   id='counter' name='counter'>2</textarea>
<textarea   id='description[0]' name=''description'>zero</textarea>
<textarea   id='description[1]' name=''description'>one</textarea>
<textarea   id='description[2]' name=''description'>two</textarea>
<button type="button" onclick="Submit()" >Save</button>

Это ошибка, которую Firebug дает мне:

document.getElementById ( "Описание [" + x + "]") равно нулю

Кто-нибудь знает способ сделать это?

спасибо

Ответы [ 2 ]

1 голос
/ 14 июня 2012

Перед применением mycount к циклу for возьмите целочисленное значение mycount с parseInt:

var mycount = document.getElementById('counter').value;
mycount = parseInt(mycount);
1 голос
/ 19 августа 2010

Это отлично работает для меня, несмотря на ваш недействительный HTML (например, несбалансированные кавычки)Лучший вопрос в том, какова цель этого.Почему бы просто не отправить форму как есть?

...