我意识到你不应该禁用一个同时需要的元素,因为如果它被禁用了,用户如何使其有效呢?
然而,我有一个产品的 <select>
列表供用户选择。当他们选择其中一个产品时,另一个用于该产品型号的< select>
将被填充,启用并且只有当该产品具有一个或多个型号时才必填。否则,型号选择框将被禁用并清空。
虽然我认为我的代码很完美,我可以让该型号下拉列表从未同时被禁用和必填,但我并不是完美的人。那么,如果一个被禁用并且必须填写的<select>
被提交,表单是否能够被提交?
更新
来自w3.org:
约束验证: 如果该元素是必填的,并且其值IDL属性适用于'value'模式,并且该元素是可变的,并且该元素的值为空字符串,则该元素存在缺失的情况。
查找关于“可变”的具体说明。
表单控件可以指定为可变的。
注意:这决定了(通过本规范中依赖于元素是否被指定而导致的定义和要求)用户是否可以修改表单控件的值或选中状态,或者一个控件是否可以自动填充。
选择框没有一个特定的值,它由其选项确定。
select 元素没有一个特定的值;其option元素的选择状态将被使用。
所以,我认为如果一个被禁用并且必须填写的<select>
被提交,表单可能会被视为有效?