获取脚本等待文件对话返回

时间:2012-10-05 08:52:36

标签: javascript jquery

我有一个网页,我想提示用户上传文件,但我不想显示<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,
    });
}

1 个答案:

答案 0 :(得分:9)

我认为您需要重构代码并处理本机文件上传事件 如果你有像文件对话框这样的元素

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

然后你可以连接到events,特别是onchange

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

jsFiddle