Ответ 1
Единственный способ иметь параметр по умолчанию - это выбрать в теге опции.
<SELECT>
<OPTION>Something
<OPTION SELECTED>Something Else
Возможно, я не понимаю, но учитывая следующий html:
<select value="2">
<option value="1">Something</option>
<option value="2">Something else</option>
</select>
Я ожидал бы, что "что-то еще" будет выбранным по умолчанию. Однако, похоже, это не так. Почему это, и что я должен делать по-другому?
Единственный способ иметь параметр по умолчанию - это выбрать в теге опции.
<SELECT>
<OPTION>Something
<OPTION SELECTED>Something Else
Вы используете атрибут selected
для элемента option
для указания опции по умолчанию.
<select>
<option value="1">Something</option>
<option value="2" selected="selected">Something else</option> // this is default
</select>
Элемент <select>
не имеет атрибута value
, поэтому его игнорируют. Итак, у вас есть единственный выбор <select>
, и ни один из его элементов <option>
не имеет атрибута selected
, это означает, что первый <option>
принимается как выбор по умолчанию.
Реакция JS
Некоторые реализации кодирования, такие как ReactJS, позволяют использовать атрибут value
с тегом <select>
, поэтому это будет абсолютно корректный код:
<select value="2">
<option value="1">Something</option>
<option value="2">Something else</option>
</select>
HTML с минимизацией атрибута:
Конечно, обычно вам нужно указать значение в состоянии, чтобы оно было обновляемым.
Однако, если вы используете чисто HTML, вы должны использовать атрибут selected
в тэге <option>
следующим образом:
<select>
<option value="1">Something</option>
<option value="2" selected>Something else</option>
</select>
HTML с полной спецификацией атрибута:
В приведенном выше примере используется минимизация атрибутов, но вы также можете указать полную форму:
<select>
<option value="1">Something</option>
<option value="2" selected="selected">Something else</option>
</select>
Я знаю, что это сообщение довольно старое, но если кто-то еще борется с этим, вы можете реализовать функциональность, которую вы ищете, используя jquery.
Полный код с использованием php будет примерно таким
PHP
if ($_SERVER['REQUEST_METHOD']== "POST") {
$thing = $_POST['things'];
} else {
$thing ="";
}
HTML
<select name='things' value="<?php echo $thing; ?>">
<option value="1">Something</option>
<option value="2">Something else</option>
</select>
JQUERY
$(function() {
$("select[value]").each(function() {
$(this).val(this.getAttribute("value"));
});
}); //end document ready
Это позволит выбрать выбранные пользователем параметры выбора, которые будут выбраны после того, как страница повторно загрузится через почту вместо возврата к значениям по умолчанию.