【问题标题】:Changing the select tag options using the dom to a default value?将使用 dom 的选择标签选项更改为默认值?
【发布时间】:2014-02-15 22:43:52
【问题描述】:

我有以下代码,我试图更改两个选择输入的默认值,我希望第一个对话得到 falsehello第二次对话但有些不对劲。

这是代码中应该进行更改的行

var vSelect = document.getElementById('select_1');
    vSelect.options[0].defaultSelected = 1; 

    vSelect = document.getElementById('select_2');
    vSelect.options[1].defaultSelected = 0; 

options[index] 是用于表示每个 select 标记内的状态,还是它们是页面内所有 option 标记的全局索引?

我真正想做的是在不知道选项索引的情况下将特定的select 标记设置为默认选项,如果是这种情况,请告诉我为什么这是不可能的。

<html>
<head>  
</head>
<body onload = "default_settings()">
<style type = "text/css">
body
{
    background-color: white;
}
#select_1, #menu_select_label_id_1, #select_2, #menu_select_label_id_2
{  
    color:#64FFFF; 
    font-size:14px;         
    background: rgba(0,0,0,1.0);    
    text-align: left;
    max-width:90px;
    padding: 4px 4px;
}
</style>
<script language="JavaScript">
function default_settings() 
{           
    var vSelect = document.getElementById('select_1');
    vSelect.options[0].defaultSelected = 1; 

    vSelect = document.getElementById('select_2');
    vSelect.options[1].defaultSelected = 0; 
}
</script>
<select  id = "select_1">
    <option value = "0">true</option>
    <option  value = "1">false</option>
</select>
<label id = "menu_select_label_id_1" for = "select_1">
    boolean 
</label>
<br>
<select  id = "select_2">
    <option value = "0">hello</option>
    <option  value = "1">goodbye</option>
</select>
<label id = "menu_select_label_id_2" for = "select2">
    greeting
</label>
</body>
</html>

【问题讨论】:

    标签: javascript html dom select tags


    【解决方案1】:

    defaultSelectedoption 元素的 boolean 属性,指示 那个 选项是否是 select 的默认选项。

    所以你只在你想成为默认的选项上设置它,并且你只将它设置为一个真实的值(这将被强制为true)。它不是索引,也不是值。

    options[index] 是用于表示每个选择标签内的状态,还是它们是页面内所有选项标签的全局索引?

    它们是特定select 元素中的option 元素(对象)。

    我真正想做的是在不知道选项索引的情况下将特定的选择标签设置为默认选项,如果是这种情况,请告诉我为什么这是不可能的。

    为此,您必须了解有关选项(其值、文本)的信息,然后在选项中搜索找到匹配的选项,并将其defaultSelected 设置为true .

    例如:我们在这里找到值为 "foo" 的选项并将其设为默认值:

    var options = theSelectBox.options;
    var n;
    for (n = 0; n < options.length; ++n) {
        if (options[n].value === "foo") {
            options[n].defaultSelected = true;
            break;
        }
    }
    

    Live Copy | Source

    【讨论】:

    • 所以options的每个选择标签的索引只适用于哪个值是真或假,每个索引代表不同的value,我将它们设置为真或假。
    • @user2555139:你让这种方式变得比现在更复杂。每个选择都有一个选项列表。这些选项是有序的。每个选项的索引是它在列表中从 0 开始的位置:第一个选项是索引0,第二个选项是索引1,等等。每个选项对象都有属性,比如它的value,它的@987654339 @,它的 selected 标志和它的 defaultSelected 标志。 defaultSelected 标志是选项对象的属性,而不是选择框,也不是索引。这是一面旗帜。默认选项为true,其他选项为false(在单选框中)。
    猜你喜欢
    • 1970-01-01
    • 2017-12-13
    • 2018-06-22
    • 2019-04-27
    • 1970-01-01
    • 2013-10-14
    • 2020-03-13
    • 1970-01-01
    • 2021-12-24
    相关资源
    最近更新 更多