1

これらの動的に作成されたファイル入力 HTML 要素は、jQuery-ajax ファイル アップロード プラグインで使用されます。

入力値が更新されてからファイルのアップロードを開始したい。ただし、Internet Explorer は Javascript の onChange を無視しているようです。

IEでこれを達成するにはどうすればよいですか?

例:

var html = $('<div class="add_input">'+
        '<input type="file" name="file"/></div>').change(submit);

$('#add_inputs').prepend(html);
4

2 に答える 2

4

上記をこれらの行に沿ったものに置き換えることができます

var html = $('<div class="add_input"><input type="file" name="file"/></div>');
$('#add_inputs').prepend(html);
$("div.add_input > input[name='file']").change(submit);

また

var html = $('<div class="add_input"><input id="filer" type="file" name="file"/></div>');
$('#add_inputs').prepend(html);
$("#filer").change(submit);
于 2009-11-23T00:52:06.117 に答える
4

jQuery で HTML から要素を作成すると、返されたハンドルは最も外側の要素を参照するため、changeイベント ハンドラを<div>ではなく に配置し<input>ます。

DOM Level 2 Events仕様では、イベントがドキュメントを「バブル」して、ドキュメントが変更されchangeたときにその親に通知するため、これはほとんどのブラウザで機能します。ただし、IE には変更がバブルしない独自のイベント モデルがあります。<div><input>

別の方法:

($('<input type="file" name="file" />')
    .change(submit)
    .prependTo('#add_inputs')
    .wrap('<div class="add_input"></div>')
);
于 2009-11-23T01:57:00.833 に答える