Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Javascript/JQuery中止/阻止/停止af:inputFile上传文件?_Javascript_Jquery - Fatal编程技术网

如何使用Javascript/JQuery中止/阻止/停止af:inputFile上传文件?

如何使用Javascript/JQuery中止/阻止/停止af:inputFile上传文件?,javascript,jquery,Javascript,Jquery,我在这里看到了许多上传文件的解决方案,但它似乎不适合我的情况。以下是我尝试实现的场景: 我想在用户选择他们想要上传的文件后检查文件的大小 在JS中,它将检查它是否大于(例如)100字节 如果是真的,我想阻止它上传文件,否则上传文件就可以了 文件大小验证很好,问题是,不知何故,我无法阻止af:inputFile在退出javascript验证后上载文件 请告诉我如何防止它从javascript/jQuery上传 这是我的密码: JS af:inputFile <af:inputFile

我在这里看到了许多上传文件的解决方案,但它似乎不适合我的情况。以下是我尝试实现的场景:

  • 我想在用户选择他们想要上传的文件后检查文件的大小
  • 在JS中,它将检查它是否大于(例如)100字节
    • 如果是真的,我想阻止它上传文件,否则上传文件就可以了
文件大小验证很好,问题是,不知何故,我无法阻止af:inputFile在退出javascript验证后上载文件

请告诉我如何防止它从javascript/jQuery上传

这是我的密码:

JS

af:inputFile

<af:inputFile label="Upload" id="if1" autoSubmit="true"
                    styleClass="UploadFile" immediate="true"
                    valueChangeListener="#{fileBean.attachFile}">
</af:inputFile>

谢谢


Kevin

如果条件不匹配,我建议重置
输入类型=文件
,如下所示:

$('.UploadFile input').on("change", function (e) {
    if (this.files[0] != null) {
        var fileSize = this.files[0].size;
        if (fileSize > 100) {
            alert("File too large!");
            var control=$("#"+$(this).attr('id'));//get the id
            control.replaceWith(control = control.clone().val(''));//replace with clone
            return;
        }
        else {
            alert("File ok");
        }
    }
});
还请注意,
this.files[0].size
字节
。因此,根据您的验证,您将不允许上载大小超过
100字节的文件


您好@Guruprasad,我在本地机器上尝试了这个,但在浏览器调试程序中遇到了一个“对象不支持属性或方法‘克隆’”的塞子抱歉。。我的错。。只需将
“#”+$(this.attr('id')
var control=$(“#”+$(this.attr('id'))一样包装在
$()
。。我已经更新了我的答案…谢谢!不知何故,它似乎接近解决我的问题,将做一点编辑,并希望它能在@GuruprasadSure.工作。。尽你最大的努力。。快乐编码…)
$('.UploadFile input').on("change", function (e) {
    if (this.files[0] != null) {
        var fileSize = this.files[0].size;
        if (fileSize > 100) {
            alert("File too large!");
            var control=$("#"+$(this).attr('id'));//get the id
            control.replaceWith(control = control.clone().val(''));//replace with clone
            return;
        }
        else {
            alert("File ok");
        }
    }
});