我正在尝试在 Javascript 中将 text 输入框标记为必需。
如果该字段最初标记为 required:
当用户尝试提交时,他们会收到验证错误:
但现在我想通过 Javascript 在“运行时”设置 required 属性:
使用相应的脚本:
//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 规范注释:
元素上存在布尔属性表示真值,不存在该属性表示假值。
如果该属性存在,则其值必须是空字符串或与该属性的规范名称匹配的 ASCII 不区分大小写的值,并且没有前导或尾随空格。
这意味着您可以通过两种不同的方式指定 required boolean 属性:
edName.attributes.required = ""; //the empty string edName.attributes.required = "required"; //the attribute's canonical name
当你查看我的 jsFiddle 的这个问题时,你会注意到如果 required 属性在标记中定义:
那么属性的值不是空字符串,也不是属性的规范名称:
edName.attributes.required = [object Attr]
这可能会带来解决方案。
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号