使用display:none表单元素的jQuery验证器插件

27

我正在使用 这里 找到的验证器插件来验证一个表单。

我的问题是,如果我在表单输入元素周围放置以下内容,则验证失败:

<div style="display:none;"><input type="text" name="test" /></div>

我需要这个功能是因为我正在使用其他 UI 控制层来控制输入元素,并且不希望它们可见。

它可以在行内和块级元素上工作,但是我需要将其隐藏。有没有办法绕过这个问题?

感谢任何反馈。

更新:

我主要是在验证选择选项字段,使用的是 django(即:{{form.select_option_element}})

所以实际上:

<div style="display:none;">
    {{form.select_option_element}}
</div>

...不起作用

发完帖子后,我似乎通过以下方式解决了这个问题:

<div style="visibility: hidden; height: 0;">
     {{form.select_option_element}}
</div>

它然后允许我验证这个字段。


请不要在您的问题中放置已接受的答案。问题和答案应该保持分开。 - dSquared
没问题,还不习惯这个地方。 - user1597002
1
可能是重复的问题:jQuery Validate - 为隐藏字段启用验证 - Fabio Antunes
5个回答

59

jQuery Validate 1.9.0版本变更日志:

  • 修复了#189 - 默认情况下现在忽略:hidden元素

要重新启用它,请执行以下操作:

$(document).ready(function(){    
    $.validator.setDefaults({
        ignore: []
    });
});

在调用实际验证插件之前,请确保此内容出现在您的代码中。

希望这可以帮到您!


1
啊,谢谢。这个很好用。我会使用这个替代方案。 - user1597002
为什么是空数组,而不是空字符串? - Lafi

4

我喜欢@dSquared的答案,但不幸的是,在页面上每个表单验证器都会重置“忽略”属性。在某些情况下,这并不需要。

我用以下方法:

$(document).ready(function () {

    var $form = $("#some-form");

    $form.validate().settings.ignore = []; // ! Say to validator dont ignore hidden-elements on concrete form.

    $('#button-send').click(function () {
        if ($form.valid()) { .. }
    });

    // !! apply plugin's initializers which will hide origin elements (it can be CLEditor or Choosen plugins)
});

1

你尝试过在输入元素中添加样式属性吗?所以,不要用div包装它,而是尝试:

<input type="text" name="test" value="" style="display: none;" />

没事了,我刚才脑子一片空白。以下是我的解决方案:
- user1597002
我正在使用Django的模型表单(ModelForms),我忘记提到我主要在验证选择项列表。 - user1597002

0
另一种解决此问题的方法是将 display: none 更改为 visibility: hidden
例如:<input type="text" name="test" value="" style="visibility: hidden;" />

0

你可以做两件事情。

1)你可以静态设置这个输入字段的值,以确保它不会失败验证,例如:

<div style="display:none;"><input type="text" name="test" value="default" /></div>

2) 如果你想在你的验证方法中忽略这个值。

如果您能提供更详细的代码,我将不胜感激。


我的意思是验证器甚至无法识别该字段,而不是验证过程本身。 - user1597002
我看到你修好了它。无论如何,很高兴看到你找到了解决方案。 - prakashpoudel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接