0

我的表单中有一个文件上传字段,我正在使用 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"}  
    }  
});  
4

1 回答 1

3

你有几个问题:

1) 无效的 HTML。 input元素不使用结束标签。它们是“自动关闭”的/>。引号resume也将是一个非常好的主意。

<input type="file" id="resume" />

2) jQuery Validate 插件要求您的表单输入每个都有一个name属性。而当你在里面声明规则时.validate(),只有namewhich 可以作为目标(见下面的代码)。

<input type="file" id="resume" name="resume" />

3) 您的 jQuery 选择器无效,并且可能缺少该#字符。如果<form>contains id="myform",那么您必须使用此选择器:

$('#myform')

rules4) 您在andmessages选项之间缺少逗号。

5)在您的messages选项中,您拼错了accept规则,并且accept规则仅适用于mime type。如果要测试文件扩展名,请使用规则并记住,如果要使用此规则,则需要包含文件extensionadditional-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"
        }  
    }  
});

工作演示:http: //jsfiddle.net/rgKXm/

于 2013-05-16T13:51:09.597 回答