Изменение параметров тега выбора с использованием dom на значение по умолчанию?

0

У меня есть следующий код, где я пытаюсь изменить значения по умолчанию для двух входов выбора, и я ожидаю получить ложные значения для первого диалога и приветствовать второй диалог, но что-то не так.

Это строка в коде, который должен внести изменения

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>
Теги:
select
tags
dom

1 ответ

1
Лучший ответ

defaultSelected - это логическое свойство элемента option, указывающее, является ли этот параметр по умолчанию для выбора.

Таким образом, вы установите его только на том параметре, который вы хотите использовать по умолчанию, и вы установите его только на правдивое значение (которое будет принудительно использовано для true). Это не индекс, а это не значение.

Используются ли options[index] для представления состояний в каждом теге select или являются ли они глобальными индексами для всех тегов параметров на странице?

Они являются элементами option (объектами) в пределах определенного элемента select.

То, что я действительно хочу сделать, - это установить конкретный тег select для параметра по умолчанию, не зная в первую очередь индекс опций, сообщите мне, почему это невозможно, если это произойдет.

Для этого вам нужно что-то узнать о параметре (его значение, его текст), а затем выполнить поиск по параметрам, находящим соответствующий, и установить для его 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;
    }
}

Живая копия | Источник

  • 0
    Таким образом, индекс с каждым тегом выбора для options применяется только к тому, какое значение является истинным или ложным, и каждый индекс представляет различное value и я установил для них значение true или false.
  • 0
    @ user2555139: Вы делаете этот путь более сложным, чем он есть. Каждый выбор имеет список параметров. Эти варианты в порядке. Индексом каждого параметра является его позиция в списке на основе 0: первый параметр - индекс 0 , второй - индекс 1 и т. Д. Каждый объект параметра имеет свойства, такие как его value , его text , его selected флаг и его defaultSelected . Этот флаг defaultSelected является свойством объекта option, а не поля выбора, и это не индекс. Это флаг. Это true по умолчанию и false для остальных (в поле с одним выбором).
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню