带有required和disabled元素的Html5表单验证



我意识到你永远不应该禁用一个元素,同时也需要它,因为如果它被禁用了,用户怎么能使它有效呢?

然而,我有一个产品的<select>,我希望我的用户从中选择。当他们选择其中一个产品时,只有当产品有一个或多个模型时,才会填充、启用和需要该产品模型的另一个<select> 。否则,模型选择将被禁用并清空。

虽然我喜欢认为我的代码是完美的,我可以使它使模型下拉菜单永远不会被禁用,同时需要,但我并不完美。那么,表单是否能够与禁用和需要的<select>一起提交?

<标题> 更新

摘自w3.org:

约束验证:如果元素是必需的,并且它的value IDL属性应用并且在mode值中,并且元素是可变的,并且元素的值是空字符串,那么元素就会丢失。

查找"可变"的具体含义

表单控件可以被指定为可变的。

注意:这决定了(通过本规范中的定义和要求,依赖于元素是否被指定)用户是否可以修改表单控件的值或检查性,或者控件是否可以自动预填充。

select没有值,所以它是由它的选项决定的。

select元素没有值;它的选项元素的选择性是用来代替的。

所以,我认为这意味着如果禁用<select>元素并且需要,则可以认为该表单是有效的?

http://www.w3.org/TR/html5/forms.html#enabling-and-disabling-form-controls:-the-disabled-attribute:

约束验证:如果一个元素被禁用,它将被禁止进行约束验证。

http://www.w3.org/TR/html5/forms.html barred-from-constraint-validation:

可提交元素是约束验证的候选元素,除非条件禁止该元素进行约束验证

最后,在约束验证步骤列表中,http://www.w3.org/TR/html5/forms.html#constraint-validation:

3.1:如果字段不是约束验证的候选者,则继续执行下一个元素。


这意味着,当检查表单有效性时,禁用的元素将被"忽略"。

它不会触发任何错误,也不会影响它所属表单的验证状态

相关内容

  • 没有找到相关文章

最新更新