我的表单中有一个文件上传字段,我正在使用jquery验证来验证该字段,如下所示:
我的输入标记:
<input type="file" id=resume></input>
验证:
$('myform').validate({
rules:{
resume : { required: true,
accept: "pdf,txt"}
}
messages:{
resume: {required: "this field is mandatory",
accepts: "accepts pdf or txt"}
}
});
答案 0 :(得分:3)
你有几个问题:
1)HTML无效。 input
个元素不使用结束标记。他们用/>
“自我关闭”。 resume
周围的引号也是一个非常好的主意。
<input type="file" id="resume" />
2)jQuery Validate插件需要表示每个表单输入都有一个name
属性。当您在.validate()
中声明规则时,只有name
可用作目标(请参阅下面的代码)。
<input type="file" id="resume" name="resume" />
3)您的jQuery选择器无效,可能缺少#
字符。如果<form>
包含id="myform"
,则必须使用此选择器:
$('#myform')
4)您在rules
和messages
选项之间缺少逗号。
5)在messages
选项中,您拼错了accept
规则,而the accept
rule仅适用于 mime类型。如果要测试文件扩展名,请使用the extension
rule并记住,如果要使用此规则,则需要包含additional-methods.js
文件。
$('#myform').validate({
rules:{
resume: { // <- this refers to the NAME attribute, NOT id.
required: true,
extension: "pdf,txt"
}
}, // <-- comma is required here
messages:{
resume: { // <- this refers to the NAME attribute, NOT id.
required: "this field is mandatory",
extension: "accepts pdf or txt"
}
}
});