如何在 JQuery Multifile 中删除警报验证

Posted

技术标签:

【中文标题】如何在 JQuery Multifile 中删除警报验证【英文标题】:How to Remove alert validation in JQuery Multifile 【发布时间】:2015-04-30 05:59:59 【问题描述】:

我正在使用 jquery 多文件上传插件http://www.fyneworks.com/jquery/multifile 可以选择文档,但是当我尝试选择错误的文件时,它会显示验证消息作为警报

您不能选择 .mp4 文件。 再试一次...

如何显示验证文本消息而不是警告消息?此外,任何使用此插件为文件添加“必需”验证的可能性。

【问题讨论】:

【参考方案1】:

我见到你posted the question also in the plugin's Github。在您等待创建者的回复时。您可以使用以下两个“hacky”选项:

    修改插件的本地版本并删除代码末尾的alert()

    ...
    error:function(a)"undefined"!=typeof console&&console.log(a),alert(a)
    ...
    

    或将其替换为将显示验证文本消息的函数:

    ...
    error:function(a)"undefined"!=typeof console&&console.log(a),myFunction(a)
    ...
    
    function myFunction(errorMessage) 
        // PLACE YOUR CODE HERE
    
    

    如果文件失败则停止事件传播:使用插件提供的验证事件来停止警报的执行(特别是 onFileInvalid 事件)。

    $('#WithEvents').MultiFile(
        max: 2,
        max_size: 100,
        accept: 'jpg',
        onFileInvalid: function (element, value, master_element, event) 
    
            // PLACE YOUR CODE HERE
    
            event.preventDefault();
            return false;
        ,
    );
    

    确实,这个event.preventDefault() 不能正常工作,但它会产生一个错误,停止执行警报(我知道这不是最好的解决方案,但它确实有效)。

    此外,作为您运行的代码的一部分,您必须将输入的值重置为空文件,否则仍会选择不正确的文件(类似于$("#myInput").val("")


关于按要求制作字段,你不必在插件或任何东西中进行更改,只需表明你的字段是required,然后感谢html5和你的浏览器的魔力,伎俩就完成了:

<input multiple type="file" id="WithEvents" required />

您可以在此处看到一个示例:http://jsfiddle.net/8ma0vmxd/(我直接在 JS 窗口中复制了插件的代码,因此您可以轻松地看到 alert() 的末尾位置)。

【讨论】:

完美快速解决方案!我不想更改插件代码,所以我选择了选项 2。谢谢

以上是关于如何在 JQuery Multifile 中删除警报验证的主要内容,如果未能解决你的问题,请参考以下文章

$("#Upfile").MultiFile();

如何创建 Azure 警报以通知任何资源删除

添加警报以使用 jquery 制作所需的文本框

text_multifile_backend 如何为文件名设置动态日期

H5的FormData对象完成ajax上传文件multiFile

Jquery/Javascript 追加不运行