-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

Bergi と Justin が言ったように、あなたは でループを始めていますi=0i=1、およびを使用するように更新しましたがi <= 10、期待どおりに動作します:)

参照: http://jsfiddle.net/sAKJd/

于 2013-02-12T23:13:02.663 に答える
0

ループを初めて通過すると、ID はimage0HTML に存在しないものになります。

于 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 に答える