输入类型文件验证消息不会在chrome中消失

时间:2013-05-16 07:17:02

标签: google-chrome jquery-validate file-io

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

1 个答案:

答案 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)您在rulesmessages选项之间缺少逗号。

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"
        }  
    }  
});

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

相关问题