【问题标题】:JQuery Validation: Validating hidden fieldsJQuery 验证:验证隐藏字段
【发布时间】:2012-12-06 16:33:51
【问题描述】:

自发布 JQuery 验证插件版本 1.9.0 以来,隐藏字段已自动从验证检查中省略 [source]。

根据release notes,解决方法是在验证函数中设置ignore: []

使用版本 1.10.0,我无法让它适用于使用 display: nonevisibility: hidden 隐藏的输入字段。

我的验证是使用类完成的(例如,class="required"),验证功能相当基本:

JQuery

$("form").validate({
    ignore: [],  
    errorPlacement: function(error, element) {
        error.appendTo( $('#error-message') )
    },
    invalidHandler: function() {
        //do something 
    },
    submitHandler: function() {
        //do something else
    }
});

工作示例:http://jsfiddle.net/fbCVY/

谁能指出我哪里出错了?

【问题讨论】:

  • 当我在 Firefox 17.0.1 中运行 jsfiddle 时,submit 按钮始终在控制台中显示“无错误”——即使在删除隐藏输入字段的 CSS 之后也是如此。我错过了什么,还是 jsfiddle 没有真正设置为无法通过验证?

标签: jquery jquery-validate


【解决方案1】:

我认为您需要为每个 input 标签提供唯一的 id 和唯一的 name 属性,以便验证插件可以找到字段并区分它们。这两个“隐藏”字段没有通过验证,因为表单上的第一个字段通过了,并且该结果用于其他两个字段。

【讨论】:

  • +1 太棒了 - 他们依赖 id 似乎有点奇怪。感谢您的解决方案!
  • 只是输入需要的名称
【解决方案2】:

尝试规则:

$("form").validate({
    ignore: "",
    rules: {
        name: ["aa", "ee"]
    },  
    errorPlacement: function(error, element) {
        error.appendTo( $('#error-message') )
    },
    invalidHandler: function() {
        //do something 
    },
    submitHandler: function() {
        //do something else
    }
});

Jsfiddle

您好。

【讨论】:

  • 谢谢 - 这实际上不是我需要的规则,我忽略了导致问题的 name 属性(所以你的 jsfiddle 有效,但这是因为你添加了 name 属性到输入而不是需要规则):jsfiddle.net/fbCVY/14
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 2018-06-21
  • 2017-08-01
相关资源
最近更新 更多