【问题标题】:Html5 form validation with required and disabled element具有必需和禁用元素的 Html5 表单验证
【发布时间】:2015-05-29 14:41:48
【问题描述】:

我意识到你永远不应该禁用一个元素并且还需要它,因为如果它被禁用,用户如何使它有效?

但是,我有一个<select> 的产品供我的用户选择。当他们选择其中一种产品时,另一个<select> 用于该产品的型号,仅当产品具有一个或多个型号时才被填充、启用和需要。否则,模型选择被禁用并清空。

虽然我喜欢认为我的代码是完美的,并且我可以做到这一点,以便模型下拉菜单永远不会被禁用和同时被要求,但我并不完美。那么,是否可以使用禁用且必需的<select> 提交表单?

更新

取自 w3.org:

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

详细了解“可变”的含义。

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

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

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

选择元素没有值;取而代之的是它的选项元素的选择。

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

【问题讨论】:

  • 您能详细说明一下-1吗?我想知道在“最坏情况”的情况下会发生什么。
  • 尽量保持你的问题客观。
  • @AlexTartan 这是客观的。表单是否经过验证。

标签: html forms validation form-submit jquery-form-validator


【解决方案1】:

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:如果字段不是约束验证的候选者,则转到下一个元素。


这意味着,当检查表单有效性时,禁用的元素将被“跳过”。

它不会触发任何错误,并且对其所属表单的验证状态没有任何影响。

【讨论】:

  • 谢谢!显然我只是没有在文档的正确位置查找。
猜你喜欢
  • 2020-10-08
  • 2012-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-05
相关资源
最近更新 更多