可提交元素是约束验证的候选,除非条件禁止约束验证中的元素。 (例如,如果元素是
object
元素,则禁止其进行约束验证。)
验证步骤包括:
对于
field
中的每个元素controls
,按树顺序运行以下子步骤:
- 如果
field
不是约束验证的候选者,那么请转到下一个元素。- 否则,如果
field
满足其约束条件,则转到下一个元素。- 否则,请将
醇>field
添加到invalid controls
。
我想知道为什么这段代码没有按预期运行:
'use strict';
alert(document.getElementById('foo').willValidate); // expected: true; true
alert(document.getElementById('bar').willValidate); // expected: true; false
alert(document.getElementById('baz').willValidate); // expected: false; false
alert(document.getElementById('foo').checkValidity()); // expected: false; false
alert(document.getElementById('bar').checkValidity()); // expected: false; true

<input type=text required id=foo>
<input type=text required id=bar readonly>
<input type=text required id=baz disabled>
&#13;
这是用户代理实施中的错误还是预期的?
答案 0 :(得分:4)
看看这里:http://www.w3c-test.org/html/semantics/forms/constraints/form-validation-willValidate.html
input
type='text'
的条件之一是:
如果是只读
,则必须禁止进行约束验证
仅供参考:假设readonly
元素已包含值,通常不需要required
属性。