rin*_*t.6 3 javascript forms validation html5
在HTML5规范状态:
一个可提交元素是约束验证的候选者,除非条件禁止该元素进行约束验证。(例如,如果元素是元素,则禁止进行约束验证
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; trueRun Code Online (Sandbox Code Playgroud)
<input type=text required id=foo>
<input type=text required id=bar readonly>
<input type=text required id=baz disabled>Run Code Online (Sandbox Code Playgroud)
这是用户代理实施中的错误还是预期的?
在这里看看:http : //www.w3c-test.org/html/semantics/forms/constraints/form-validation-willValidate.html
a input的条件之一type='text'是:
如果为只读,则必须禁止约束验证
仅供参考:假设readonly元素已经包含一个值,通常不需要该required属性。