【问题标题】:Validate some file input fields with jQuery validate plugin使用 jQuery 验证插件验证一些文件输入字段
【发布时间】:2012-10-18 22:57:26
【问题描述】:

HTML

<div id="multadpic">
    <input type="file" name="adpic[]" />
</div>

我在这个 div 后面有一个按钮,我可以添加无限文件输入,如下所示:

<div id="multadpic">
    <input type="file" name="adpic[]" />
    <input type="file" name="adpic[]" />
    <input type="file" name="adpic[]" />
    <input type="file" name="adpic[]" />
    <input type="file" name="adpic[]" />
</div>

我将如何使用 jQuery 验证插件对其进行验证?考虑到我不能在规则中写方括号,但是输入的名称有方括号..

我发现的一个解决方案是在插件之后编写自己的验证(但我不知道它是否有效,或者它是否是一个糟糕的解决方法):

jQuery('#myForm').validate(
{
    rules:
    {
        //my rules
    },

    messages:
    {
        //my messages
    },

    submitHandler:
    {
        //my file input validation
    }
});

我已经阅读了很多关于此的问题,但没有一个答案能解决我的需求。

提前感谢您的关注。

【问题讨论】:

  • 您要进行哪种类型的验证?为什么你不能逃脱括号?
  • 我需要验证文件扩展名,只接受 'jpg|jpeg|png' 和文件大小。是否有可能逃脱括号?我不知道那个..
  • 要转义括号,请使用\\[ 而不是[\\] 而不是]
  • 这行不通,蝙蝠侠。
  • 括号不会被转义。整个name 只是用引号括起来,"adpic[]"

标签: javascript jquery html jquery-plugins jquery-validate


【解决方案1】:

方括号对于.validate() 插件来说不是问题。您必须简单地将包含特殊字符的 name 括在引号中。

工作演示

http://jsfiddle.net/grVmG/

jQuery

$(document).ready(function() {

    $('#myform').validate({
        rules: {
            "field[]": {
                required: true,
                minlength: 5
            }
        },
        messages: {
            "field[]": {
                required: "this is required",
                minlength: "must be at least {0} characters"
            }
        }
    });

});

HTML

 <input type="text" name="field[]" />

【讨论】:

    猜你喜欢
    • 2015-07-17
    • 1970-01-01
    • 1970-01-01
    • 2011-04-01
    • 1970-01-01
    • 2018-11-13
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    相关资源
    最近更新 更多