我想使用validate插件检查上传文件类型。
但是我收到以下错误消息:
Uncaught TypeError: Cannot read property 'call' of undefined.
Exception occurred when checking element file, check the 'accept' method.
这是我的表格。
<form id="upload" enctype="multipart/form-data">
<div class="control-group">
<div class="controls">
<input id="file" name="file" type="file">
</div>
<div class="form-group">
<button class="btn btn-primary" onclick="Submit()" type="button">Submit</button>
</div>
</div>
</form>
这是我的JavaScript:
var Submit=function(){
var validator = $('#upload').validate({
rules:{
file: {
required: true,
accept: "audio/*, video/*"
}
},
message: {
file:"Invalid file type"
}
});
validator.form();
}
答案 0 :(得分:25)
要使用"accept"
方法,您需要包含jQuery Validate其他方法文件。只需在验证文件后包含它:
<script src="http://jqueryvalidation.org/files/dist/jquery.validate.min.js"></script>
<script src="http://jqueryvalidation.org/files/dist/additional-methods.min.js"></script>
然后尝试启动这样的验证器:
$(document).ready(function(){
$("#upload").validate({
...settings...
});
});
然后从按钮中删除onClick
和type="button"
属性。
以下是文档:
答案 1 :(得分:0)
我遇到了同样的问题,但是我找到了解决方案,我在jquery验证脚本上方的脚本中添加了以下代码
getNameFromList
之后,您必须添加自己的验证脚本
$.validator.addMethod('filesize', function (value, element, param) {
return this.optional(element) || (element.files[0].size <= param)
}, 'File size must be less than {0}');