6

ファイルのアップロードをユーザーに促したい Web ページがありますが、<input type="file"/>要素を表示したくありません。

ファイルダイアログを表示するボタンがありますが、コードはダイアログが戻るのを待ちません。

ファイルダイアログが戻ったときに発生するフックできるイベントはありますか? 私が考えていないことは他にありますか?

これは私が現時点で持っているもので、アラートを使用してコードをブロックします。ハックの少ないものが欲しいです。

function importValues(e)
{
    var f = document.getElementById('file');
    f.click();
    alert('loading'); //hack to make the code wait for the user to choose a file before making the ajax call
    var formdata = new FormData(jQuery('#frmImport')[0]);
    jQuery.ajax({
        url: 'importFile',
        type: 'POST',
        data: formdata,
        chache: false,
        contentType: false,
        processData: false,
    });
}
4

1 に答える 1

12

コードをリファクタリングし、ネイティブ ファイル アップロード イベントを処理する必要があると思います。
ファイルダイアログのような要素がある場合

<input type="file" name="file" id="file" /> 

次に、そのイベントに接続し、特にonchange

$(function(){
    $("#file").change(function(e){ alert('selected') });
});​

jsフィドル

于 2012-10-05T09:22:19.500 に答える