2013-02-12 3 views
-1

У меня возникли проблемы с getElementById, возвращающими null. Я попытался поместить в него идентификатор, который отлично работает.getElementById return null

Эта функция вызывается кнопкой отправки, она извлекает имена загруженных файлов и записывает их в скрытые поля.

function onSubmitting() { 
    try { 
      var AU = $('#uploader').data('AU'); 
      var file_list = AU.files; 
      var i = 0; 
      while (i < 10) { 
       var tempName = "image" + i.toString(); 
       if (!(typeof file_list[i] === "undefined")) { 
        document.getElementById(tempName).value = "test"; 
       } 
       i++; 
      }      
     } 
     catch (err) { 
      alert(err.message); 
     } 
} 

Соответствующий HTML здесь:

<input type="hidden" name="image1" id="image1" /> 
<input type="hidden" name="image2" id="image2" /> 
<input type="hidden" name="image3" id="image3" /> 
<input type="hidden" name="image4" id="image4" /> 
<input type="hidden" name="image5" id="image5" /> 
<input type="hidden" name="image6" id="image6" /> 
<input type="hidden" name="image7" id="image7" /> 
<input type="hidden" name="image8" id="image8" /> 
<input type="hidden" name="image9" id="image9" /> 
<input type="hidden" name="image10" id="image10" /> 

Спасибо за любую помощь

+0

Вместо того, чтобы называть их так, использовать общий класс. Это будет намного чище. – Zirak

+0

Возможный дубликат [Почему метод jQuery или DOM, такой как \ getElementById \ 'не находит элемент?] (Http://stackoverflow.com/questions/14028959/why-does-jquery-or-a-dom- method-such-as-getelementbyid-not-find-the-element) –

ответ

0

Первый раз через петлю идентификатор будет image0, который не присутствует в вашем HTML.

+0

Ах спасибо, что полностью упустил это! –

0

Ваш цикл выполняется от 0 до 9, но ваши элементы названы от 1 до 10. Изменение

for (var i=0; i<10; i++) 

к

for (var i=1; i<=10; i++) 

или использовать (i+1) повсюду в теле цикла

0

Как сказал Берги и Джастин, вы начинаете свою петлю с i=0. Я обновил его использовать i=1 и i <= 10, и она работает, как ожидалось :)

См: http://jsfiddle.net/sAKJd/

Смежные вопросы