我正在使用jQuery Validation插件将用户限制为某些文件类型。截至目前,它接受任何和所有文件,无论我做什么。我称之为:
$("#untForm").validate({
ignore: [],
rules: {
fileName: {
required: false,
extension: "jpg|gif|png|mov|avi|pdf"
}
}
});
这是我表格的一部分:
<input type="file" class="file_input_hidden" name="attachment" id="attachment" onchange="javascript: document.getElementById('fileName').value = this.value" />
我也试过这个:
<input type="file" class="file_input_hidden" name="attachment" id="attachment" onchange="javascript: document.getElementById('fileName').value = this.value" accept=" "image/x-jpg, image/x-png, image/x-gif, application/pdf" />
在下面的例子中,如果我使用扩展参数,它接受任何类型的文件!
$("#untForm").validate({
ignore: [],
rules: {
fileName: {
required: false,
extension: "png|jpe?g|gif"
}
}
});
有人看错了什么吗?
答案 0 :(得分:1)
“有人看错了吗?”
...是
rules: {
fileName: { // <- no such element with this name
....
由于您没有属性input
的任何文件name="fileName"
元素,因此无法正常工作。
您必须使用相关文件name
元素的input
属性分配规则。
如果你的问题的HTML标记是name="attachment"
,那么你的jQuery需要看起来像......
$(document).ready(function() {
$("#untForm").validate({
ignore: [],
rules: {
attachment: { // <- name of input
required: false,
extension: "png|jpe?g|gif"
}
}
});
});
我不确定您使用内联JavaScript实现了什么,但是您不需要onchange
处理程序来使jQuery Validate正常运行。 (实际上,使用jQuery,您将永远不需要再次使用内联事件处理程序)
<input type="file" class="file_input_hidden" name="attachment" id="attachment" />
正在编写代码的DEMO:http://jsfiddle.net/yb9A8/