2016-11-30 14 views
0

フォームとボタン(リンク)があり、「insertBefore()」メソッドを使用してクリック時に入力タイプ=ファイルを追加します。 作成した入力を使用してフォームをアップロードしようとすると、何も起こりません。しかし、私が自分で入力を設定すると、それはうまくアップロードできます。 おおよそのコードです。動的に挿入された入力をアップロードできません

作品(私は入力をアップロードすることができます):

<input type="File" name="attachEdit"> 

は(私が挿入された入力をアップロードしようとすると、何も起こらない)動作しません:

<a href="javascript: void(0);" id="attachFile" onclick="addFileInput(); return false;">Attach a file</a> 
<script> 
    function addFileInput(){ 
     $('<input type="File" name="attachEdit">') 
      .insertBefore("##attachFile"); 
    } 
</script> 

私は動的に入力を追加したいとそれらをすべてアップロードします。

どうすれば問題を解決できますか?どんな助けもありがとうございます。

+0

セレクタに '## attachFile'を使用しています。 – 31piy

+0

##はタイプミスのようです。 – BjornJohnson

+0

生成されたHTMLマークアップが現在フォーム内にあるかどうかを確認しましたか? –

答えて

0

あなたのコードには2つの提案があります。

  1. ##attachFileを使用しないでください。これは無効なセレクタです。 #attachFileを使用してください。
  2. リンクのhref属性に直接javascript:addFileInput();を書くことができます。ここで

実施例である:

<!-- trucated for brevity --> 
<body> 
    <input type="File" name="attachEdit"> 
    <a href="javascript:addFileInput();" id="attachFile">Attach a file</a> 

    <script> 
    function addFileInput() { 
     $('<input type="File" name="attachEdit">') 
     .insertBefore("#attachFile"); 
    } 
    </script> 
</body> 
<!-- trucated for brevity --> 

がPS:あなたのHTMLでのjQueryを含めることを忘れないでください。詳細はSee this plunkerをご覧ください。

関連する問題