非活动必填字段和Firefox问题

时间:2012-11-19 00:51:12

标签: jquery forms validation firefox show-hide

在下拉列表中使用jQuery根据下拉列表选择显示/隐藏文本输入字段会导致Firefox中出现奇怪的行为,即使必须填写所有“必填”字段,也不允许提交表单,即使这些必填字段是隐藏的从下拉列表中选择,或者说,它们实际上是不活动的。

Safari,只是忽略不可见的“必填”字段,只检查活动(可见)必填字段,如果这些字段已填写,表单最好提交。

我试图搜索任何事件和可能的解决方案,但似乎没有找到。

示例:

<select id="theselect" name="something">
    <option value="1" selected>One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
</select>

<input type="text" name="one" required="required" class="show" />
<input type="text" name="two" required="" class="hide" />
<input type="text" name="three" required="required" class="hide" />

在上面的例子中,考虑到输入二和三是隐藏的,但如果选择更改为2或3,这将改变相应输入的状态/可见性,则需要Firefox强制所有必需的输入填充。

有没有人经历过这个和/或对如何使用jQuery有效管理这个有一些想法? 提前感谢您的任何想法和帮助。

1 个答案:

答案 0 :(得分:2)

即使是“隐藏”的字段也会提交。因此,如果它们被标记为“必需”,它们将导致验证失败。规范对此很清楚。

您可能希望将它们设置为不需要,或者在隐藏它们时将它们设置为禁用,具体取决于您是否确实希望它们以未设置状态提交。