2

私はそのようなものを持っています:

$('input[type=file]').on('change', function(){ 
console.log('changed!'); });

そしてそれは動作しません。他のフォーム要素では正常に機能しますが、input [type=file]では機能しません。ただし、.on()関数を.live()に変更すると、正常に機能します。jQuery 1.8.3を使用していますが、1.9.0にアップグレードしたいので、.live()関数はもうありません。何か案は?

4

3 に答える 3

5

「オン」はjquery1.8.3で正常に機能します。このコードを試して、jquery1.8.3で機能する以下のデモを確認してください。

$('input[type="file"]').on('change', function(event){ 
     console.log('changed!'); 
});

これを試してください:デモ

于 2013-01-18T08:17:10.207 に答える
1

私は理論を持っています:

セレクター$('input [type = file]')が実際に要素を取得していることを確認しますか?入力をDOMに動的に挿入している場合、セレクターの実行時に入力が存在しない可能性が非常に高く、.liveが機能する理由が説明されます。

次のコードを使用してみてください。

$('body').on('change', 'input[type=file]', function(event){
    console.log('Changed!');
});

それが機能する場合は、問題が見つかりました...存在する前に要素を選択し、コードの実行後にそれらをDOMに挿入しています。

于 2013-01-18T09:05:05.910 に答える
0

また、あなたはで試すことができます

$('input:file').on('change', function(event){ 
     console.log('changed!'); 
});
于 2013-01-18T08:23:39.500 に答える