即使在显示警报后仍保持文件对话框打开

时间:2011-04-27 10:46:07

标签: javascript jquery

HI Guys,

我有下面的代码,我检查所选文件的文件类型 hiddenFileInputFile是文件输入类型 下面的代码工作正常但是如果用户没有提供.csv文件,那么它会显示警报,这很好,但是我希望文件对话框保持打开状态,这是没有发生的。

请告知。
还有什么方法可以直接将过滤器应用到文件对话框,使用jquery / javascript只选择.csv文件?

Element.find('input.hiddenFileInputFile').change(function () 
{
            var filename = $(this).val();
            if (!/\.csv$/.test(filename)) {
                alert('Please select a csv file');
                return false;
            }
});

感谢。

2 个答案:

答案 0 :(得分:1)

在警报后调用click事件:

if (!/\.csv$/.test(filename)) {
   alert('Please select a csv file');
   $(this).click();
   return false;
}

这不会“保持打开”这是不可能的,但在文件无效时重新打开它。

答案 1 :(得分:0)

不幸的是,出于安全原因,您无法从外部触发文件输入点击事件。但是,如果您想在客户端限制用户,可以尝试:

<input type="file" accept="text/csv" /> 

这只会使.csv类型文件在打开的文件对话框中可见。但是我也会在服务器端放置一个控件。如果不是正确的类型,您可以打开一个警告对话框并相应地设置文件输入的样式(例如红色边框)并让用户打开文件对话框,因为没有任何方法可以触发它。

jquery的一些插件提供了一些方法,可以让您对上传过程进行大量控制。

Jquery plugin 1uploadify jquery

仅举几例。

希望它有所帮助。

相关问题