-1

我在 getElementById 返回 null 时遇到问题。我尝试将 id 直接放入其中,效果很好。

该函数由提交按钮调用,它检索上传文件的名称并将它们写入隐藏字段。

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" />

谢谢你的帮助

4

3 回答 3

0

第一次通过循环时,ID 将image0不会出现在您的 HTML 中。

于 2013-02-12T23:08:10.670 回答
0

您的循环从 0 运行到 9,但您的元素的名称从 1 到 10。更改

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

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

(i+1)在循环体中的任何地方使用

于 2013-02-12T23:08:24.433 回答
0

正如 Bergi 和 Justin 所说,您正在使用i=0. 我已将其更新为使用i=1, 和i <= 10, 它按预期工作:)

见:http: //jsfiddle.net/sAKJd/

于 2013-02-12T23:13:02.663 回答