如果我通过 Javascript 更改<选项>元素上的属性“选定”会发生什么
What happens if I change attribute "selected" on an <option> element via Javascript?
如果我通过 Javascript 更改<option>
元素上的属性"selected"会发生什么?
例
.HTML
<select size="1" id="myselect">
<option>pepper</option>
<option selected="selected">salt</option>
</select>
爪哇语
var selectObj = document.getElementById('myselect');
selectObj.options[1].removeAttribute('selected');
selectObj.options[0].setAttribute('selected','selected');
JSFiddle.net 的活生生的例子.
我找不到任何关于这应该做什么的文档(尽管它似乎更改了下拉框中的选定选项(。
我在Firefox中尝试过,发现在<option>
上设置属性有时会选择该选项,有时不会,而在Chrome中它总是有效。那么它应该怎么做呢?这在任何规范中都有描述吗?
注意:
我知道我可以通过JS更改选择,例如 option.selected=true/false
或select.value=<newval>
.所以我的问题不是找出如何更改选择;我只是想了解如果纵该属性会发生什么。
5.1规范说,对于选项元素
选项元素的选择性最初是布尔状态 假。...每当添加选项元素的选定属性时, 其选择性必须设置为 True。
因此,当调用 setAttribute("selected", ...( 时,content 属性获得属性值,并且元素的 "selectedness" 状态可能会更改。请注意,当添加元素选定属性时,它表示选项元素的选择性设置为 true。这意味着,如果对已具有 selected 属性的元素调用 setAttribute('selected','selected')
,则不需要更改元素的选定性或任何其他选项元素。
接下来是更改元素"选择性"的后果。
选定的 IDL 属性在获取时必须返回 true,如果 元素的选择性为真,否则为假。
(如果您不熟悉该术语,"IDL 属性"是大多数人认为的"属性",例如 opt.selected
(
然后,对于选择元素,它说:
如果 multiple 属性不存在,则每当 选择元素的选项列表的"选择性"设置为"true",... 用户代理必须设置所有其他选项的选择性 元素,以将其选项列表为 false。
和
选定的选项 IDL 属性必须返回 HTML 植根目录 在选择节点上,其过滤器与 选择性设置为 true 的选项。
选定的索引 IDL 属性在获取时必须返回 按树顺序排列的选项列表中的第一个选项元素具有 其选择性设置为 true(如果有(。如果没有,那么它必须 返回 −1。
值 IDL 属性在获取时必须返回 按树顺序排列的选项列表中的第一个选项元素,其 选择性设置为 true(如果有(。如果没有,那么它必须 返回空字符串。
在提交表单时,在构建表单数据集期间:
如果字段元素是选择元素,则对于每个选项元素 在选择元素的选项列表中,其选择性为 true 和 如果未禁用,则在表单数据集后附加一个条目,其中包含 名称作为名称,选项元素的值作为值,以及 键入作为类型。
这是否涵盖了您需要了解的内容?
- 如何在CSS或Javascript中定位选定的属性(在HTML选项中)
- AngularJS-筛选对象中的选定属性
- 如何使用Google Embed API获取选定的帐户ID和属性ID
- 如何使用JavaScript在JSP页面上从下拉列表中呈现选定值的属性
- 正在代码隐藏中检索选定ListBox项的属性数据
- datalist获取选定的值和自定义属性(无事件)
- 从列表中的选定项获取属性值
- 如何仅在活动选项卡中获取选定选项的属性
- 使用几个选定的选项访问多选中的特定属性
- 仅定位选定的数据属性
- 使用 javascript 更改 Gridview 文本框的可见属性 true 在下拉列表的选定索引更改事件上为 tru
- 将数组值追加到选定元素的 ID 属性
- 如果我通过 Javascript 更改<选项>元素上的属性“选定”会发生什么
- 使用 JavaScript 查找具有选定属性的选择选项
- 从 select2 选定选项中获取属性值
- HTML 选择“选定”属性不起作用
- HTML select元素不会't显示更新的选定属性
- 在选择框Angularjs中将已存在的选定属性设置为默认选定值
- 通过jQuery删除选定属性后刷新多选
- jQuery在分配“选定”属性时行为不一致