0

ファイルアップロード用の入力フィールドを作成しようとしています..ユーザーがファイルを選択すると、ファイル入力フィールドが新しい空のフィールドと複製されます

私が使用したのはこのようなものでした

<form>
<input type='file' class='addImage' />
</form>


$(function(){ 
        $('.addImage').change(function(){
            $("<input type='file' class='addImage' />").appendTo('form');
        });
    });

ここでライブをご覧くださいhttp://jsfiddle.net/R5QSy/1/

それは機能し、別の単一のファイル入力の重複のみを表示します..新しく生成された入力からファイルを選択すると、重複は発生しません! 複製プロセスを無制限にするにはどうすればよいですか? ありがとう

4

1 に答える 1

2

change追加される 2 番目のファイル入力は、関数がハンドラーをアタッチする時点ではまだ存在しないため、changeイベントに応答しません。代わりに委任されたイベント ハンドラーを使用して、これを修正できます。

$(document).on("change", ".addImage", function(){ ... });

要素のいずれかで選択されたファイルを変更するたびに、新しいファイル入力が追加されるため (フォームに未使用の入力コントロールが既にある場合でも)、これは現状ではおそらく満足できるものではないことに注意してください。ハンドラーが呼び出されたときに任意の要素にクラスを追加し、新しい要素を追加する前にクラスがまだないことを確認することで、これを防ぐことができます。

于 2013-11-08T22:21:32.820 に答える