输入类型文件的 jQuery 验证

Posted

技术标签:

【中文标题】输入类型文件的 jQuery 验证【英文标题】:jQuery Validation for Input Type File 【发布时间】:2018-12-28 18:10:53 【问题描述】:

我在我的表单上使用 jQuery 验证,带有几个文本框、下拉列表和一个文件输入。我还为扩展方法添加了 additional_methods.js。它工作得很好,除了文件输入。它显示了必需的非自定义消息的默认错误消息,扩展部分也不起作用。

html

<input type="file" id="Logo" class="form-input-styled" required>

jQuery:

$('.form-validate').validate(
    ignore: 'input[type=hidden], .select2-search__field',
    errorClass: 'validation-invalid-label',
    successClass: 'validation-valid-label',
    validClass: 'validation-valid-label',
    highlight: function (element, errorClass) 
        $(element).removeClass(errorClass);
    ,
    unhighlight: function (element, errorClass) 
        $(element).removeClass(errorClass);
    ,
    success: function (label) 
        label.addClass('validation-valid-label').text('Başarılı.');
    ,
    errorPlacement: function (error, element) 
        if (element.parents().hasClass('form-check')) 
            error.appendTo(element.parents('.form-check').parent());
        
        else if (element.parents().hasClass('form-group-feedback') || element.hasClass('select2-hidden-accessible')) 
            error.appendTo(element.parent());
        
        else if (element.parent().is('.uniform-uploader, .uniform-select') || element.parents().hasClass('input-group')) 
            error.appendTo(element.parent().parent());
        
        else 
            error.insertAfter(element);
        
    ,
    rules: 
        Logo: 
            required: true,
            extension: "png"
        
    ,
    messages: 
        Logo: 
            required: "Please select a business logo!",
            extension: "Please select a valid logo!"
        
    
);

【问题讨论】:

name 属性对于正在验证的字段是必需的。这也是您放入 rules 对象的内容;不是身份证。 name=“Logo”。这在文档中有详细说明。 我第一次使用验证器,我错过了这个。这是可能的,对吧?并且,感谢您的反对。它会提醒我在这里提出任何问题之前要深入挖掘。 【参考方案1】:

问题解决了!当我将 name 属性添加到输入时,它可以按我的意愿完美运行。自定义错误消息现已生效。

<input type="file" id="Logo" name="Logo" class="form-input-styled" required>

【讨论】:

以上是关于输入类型文件的 jQuery 验证的主要内容,如果未能解决你的问题,请参考以下文章

使用 jquery 验证引擎插件时输入 type="file" 不发送文件

jQuery 验证插件:验证多个输入文件

使用 jQuery 验证插件验证一些文件输入字段

Jquery使用一个输入文件多个验证

当多个输入具有相同名称时,根据输入类型设置 jquery 表单验证

如何在没有协议的情况下对输入类型 url 使用 jQuery 验证?