我试图在Javascript text中根据需要标记输入框。
<input id="edName" type="text" id="name">
如果该字段最初标记为required:
<form>
<input id="edName" type="text" id="name" required><br>
<input type="submit" value="Search">
</form>
当用户尝试提交时,他们会收到验证错误:
在此输入图像描述
但现在我想通过Javascript required在“运行时”设置属性:
<form>
<input id="edName" type="text" id="name"><br>
<input type="submit" value="Search">
</form>
与相应的脚本:
//recommended W3C HTML5 syntax for boolean attributes
document.getElementById("edName").attributes["required"] = "";
除非我现在提交,否则没有验证检查,没有阻止。
设置HTML5验证布尔属性的正确方法是什么?
的jsfiddle
你问,这个属性有什么价值?
HTML5验证required属性记录为Boolean:
4.10.7.3.4 required属性
该required属性是布尔属性。指定时,元素是必需的。
关于如何定义boolean属性有很多令人费解的事。HTML5规范说明:
元素上存在布尔属性表示真值,缺少属性表示false值。
如果该属性存在,则其值必须是空字符串,或者是属性的规范名称的ASCII不区分大小写匹配的值,没有前导或尾随空格。
这意味着您可以通过两种不同的方式指定required 布尔属性:
edName.attributes.required = ""; //the empty string
edName.attributes.required = "required"; //the attribute's canonical name
但是,什么是属性的值真的?
当你查看我的问题的jsFiddle时,你会注意到如果required在标记中定义了属性:
<input id="edName" type="text" id="name" required>
那么属性的值不是空字符串,也不是属性的规范名称:
edName.attributes.required = [object Attr]
这可能会导致解决方案。
慕雪6442864
相关分类