2

我正在使用jQuery Validation 插件来验证某些表单。我在表单中有一个文件字段,为此我在rules子句中有一个条目,例如the_file: { required: true, accept: 'txt|doc' }. 这成功地检测到缺少所选文件或选择了具有错误扩展名的文件,但是在我选择具有正确扩展名的文件后,错误消息不会被删除。我已经尝试过onfocusout从句,但没有运气。FWIW,表单中的其他字段行为正常(例如,在我在字段中输入几个字符后,文本字段上的消息消失了)。有没有办法在选择合法文件后清除文件字段的消息?谢谢!

4

1 回答 1

4

由于txtdoc是文件扩展名,因此您需要extension规则。该 accept规则仅适用于 Mime 类型。

http://jqueryvalidation.org/extension-method

另外,不要忘记包含该additional-methods.js文件。


编辑

“有没有办法在选择合法文件后清除文件字段的消息?”

添加change事件处理程序并结合方法强制插件.valid()每次该字段的值更改时对文件字段运行验证测试。

$(document).ready(function () {

    $("form#testform").validate({
        rules: {
            file1: {
                required: true,
                extension: 'txt'
            }
        }
    });

    $('#file1').on('change', function() { // fires every time this field changes
        $(this).valid();                  // force a validation test on this field
    });

});

演示:http: //jsfiddle.net/9GcYj/42/

于 2013-08-01T01:23:54.503 回答