1

在下拉列表中使用 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 是隐藏的,但是如果选择更改为 2 或 3,这将改变相应输入的状态/可见性,则 Firefox 会强制填充所有必需的。

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

4

1 回答 1

2

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

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

于 2012-11-19T04:44:13.997 回答