首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Javascript中设置HTML5必需属性?

如何在Javascript中设置HTML5必需属性?
EN

Stack Overflow用户
提问于 2013-09-13 01:07:53
回答 6查看 273.3K关注 0票数 106

我正在尝试在Javascript中将一个text输入框标记为required

代码语言:javascript
复制
<input id="edName" type="text" id="name">

如果字段最初标记为required

代码语言:javascript
复制
<form>
    <input id="edName" type="text" id="name" required><br>
    <input type="submit" value="Search">
</form>

当用户尝试提交时,会出现验证错误:

但是现在我想通过Javascript在“运行时”设置required属性:

代码语言:javascript
复制
<form>
    <input id="edName" type="text" id="name"><br>
    <input type="submit" value="Search">
</form>

使用相应的脚本:

代码语言:javascript
复制
//recommended W3C HTML5 syntax for boolean attributes
document.getElementById("edName").attributes["required"] = "";         

除了我现在提交的时候,没有验证检查,没有阻塞。

设置HTML5验证布尔值属性的正确方法是什么

jsFiddle

你会问这个属性的值是什么?

作为Boolean的HTML5验证required attribute is documented

4.10.7.3.4 attribute

required属性是一个boolean attribute。如果指定该元素,则该元素是必需的。

关于如何定义boolean属性,有很多繁琐的工作。HTML5规范说明:

如果元素上存在布尔属性,则表示真值,如果不存在该属性,则表示假值。

如果该属性存在,则其值必须是空字符串,或者是与属性规范名称不区分大小写的ASCII匹配的值,并且没有前导空格或尾随空格。

这意味着您可以通过两种不同的方式指定required 布尔属性:

代码语言:javascript
复制
edName.attributes.required = ""; //the empty string
edName.attributes.required = "required"; //the attribute's canonical name

但是这个属性的真正值是什么呢?

查看my jsFiddle of this problem时,您会注意到如果在标记中定义了required属性:

代码语言:javascript
复制
<input id="edName" type="text" id="name" required>

则属性值为,而不是空字符串,也不是属性的规范名称:

代码语言:javascript
复制
edName.attributes.required = [object Attr]

这可能会导致一个解决方案。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18770369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档