我正在尝试在Javascript中将一个text
输入框标记为required。
<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验证布尔值属性的正确方法是什么
你会问这个属性的值是什么?
作为Boolean
的HTML5验证required
attribute is documented
4.10.7.3.4 attribute
required
属性是一个boolean attribute。如果指定该元素,则该元素是必需的。
关于如何定义boolean
属性,有很多繁琐的工作。HTML5规范说明:
如果元素上存在布尔属性,则表示真值,如果不存在该属性,则表示假值。
如果该属性存在,则其值必须是空字符串,或者是与属性规范名称不区分大小写的ASCII匹配的值,并且没有前导空格或尾随空格。
这意味着您可以通过两种不同的方式指定required
布尔属性:
edName.attributes.required = ""; //the empty string
edName.attributes.required = "required"; //the attribute's canonical name
但是这个属性的真正值是什么呢?
查看my jsFiddle of this problem时,您会注意到如果在标记中定义了required
属性:
<input id="edName" type="text" id="name" required>
则属性值为,而不是空字符串,也不是属性的规范名称:
edName.attributes.required = [object Attr]
这可能会导致一个解决方案。
https://stackoverflow.com/questions/18770369
复制相似问题