我试图在Javascript text中根据需要标记输入框.
<input id="edName" type="text" id="name">
Run Code Online (Sandbox Code Playgroud)
如果该字段最初标记为required:
<form>
<input id="edName" type="text" id="name" required><br>
<input type="submit" value="Search">
</form>
Run Code Online (Sandbox Code Playgroud)
当用户尝试提交时,他们会收到验证错误:

但现在我想通过Javascript required在"运行时"设置属性:
<form>
<input id="edName" type="text" id="name"><br>
<input type="submit" value="Search">
</form>
Run Code Online (Sandbox Code Playgroud)
与相应的脚本:
//recommended W3C HTML5 syntax for boolean attributes
document.getElementById("edName").attributes["required"] = "";
Run Code Online (Sandbox Code Playgroud)
除非我现在提交,否则没有验证检查,没有阻止.
设置HTML5验证布尔属性的正确方法是什么?
HTML5验证required属性记录为Boolean:
4.10.7.3.4
required属性该
required属性是布尔属性.指定时,元素是必需的.
关于如何定义boolean属性有很多令人费解的事.HTML5规范说明:
元素上存在布尔属性表示真值,缺少属性表示false值.
如果该属性存在,则其值必须是空字符串,或者是属性的规范名称的ASCII不区分大小写匹配的值,没有前导或尾随空格.
这意味着您可以通过两种不同的方式指定required 布尔属性:
edName.attributes.required …Run Code Online (Sandbox Code Playgroud)