Javascript 将jQuery验证设置为检查并允许空文件扩展名
我们正在使用jQuery validate在文件上载时将文件扩展名列入白名单:Javascript 将jQuery验证设置为检查并允许空文件扩展名,javascript,jquery,jquery-validate,Javascript,Jquery,Jquery Validate,我们正在使用jQuery validate在文件上载时将文件扩展名列入白名单: $("#new-job-form").validate({ focusCleanup: true, focusInvalid: false, ignore: [], rules: { jobServices: "required", file: { required: true, filesize: max
$("#new-job-form").validate({
focusCleanup: true,
focusInvalid: false,
ignore: [],
rules: {
jobServices: "required",
file: {
required: true,
filesize: maxFileSize,
extension: '.tsv|.txt|.csv|.psv|.xls|.xlsx|.zip|.7z|.rar'
}
}
});
这个很好用。然而,一个新的要求是接受dob根本没有扩展名的文件,我不知道如何通过jqueryvalidate实现这一点。我尝试添加一个空分区:
extension: '.txt|.csv|.xls|.xlsx|.zip|.7z|.rar||'
但它仍然拒绝没有扩展名的文件
是否有办法将模块配置为接受不带扩展名的文件?我建议您创建自己的规则;与扩展名相同的规则,但如果文件名不包含点,则添加检查
value.indexOf('.') == -1;
请参阅下面的代码片段:
//添加extensionempty规则
$.validator.addMethod(“extensionempty”,函数(值、元素、参数){
param=typeof param==“字符串”?param.replace(/,/g,“|”):“png | jpe?g | gif”;
console.log(值,参数);
返回此.optional(element)| value.match(新的RegExp(“\\”(“+param+”)$”,“i”))| value.indexOf('.')=-1;
},$.validator.format(“请输入具有有效扩展名的值。”);
$(“#新工作表”)。验证({
focusCleanup:没错,
焦点无效:错误,
忽略:[],
规则:{
文件:{
要求:正确,
扩展空:“tsv | txt | csv | psv | xls | xlsx | zip | 7z | rar”
}
}
});代码>
.tsv |.txt |.csv |.psv |.xls |.xlsx |.zip |.7z |.rar文件允许:
我会尝试阅读文档。似乎使用a可以满足您的需要,但您必须创建它。在何处/如何/何时有没有文件扩展名的文件?顺便说一句,Windows和Mac都会强制使用文件扩展名,即使操作系统“隐藏”扩展名,它们仍然存在。请注意标签垃圾邮件。jQuery验证引擎不是同一个插件。已编辑。@Sparky谢谢您的编辑。我不打算争论“隐藏”扩展名,但如果你在windows中编辑文件并删除扩展名,我可以抛出的所有代码都不会在文件末尾找到后缀。我并不是说这是绝对不可能的。只是想知道,从实际的角度来看,有人会想要一个没有扩展名的文件。。。以及为什么你想让它上传。