Я хотел бы создать опцию в форме как
[] I would like to order a [selectbox with pizza] pizza
где selectbox включается только тогда, когда флажок установлен, и отключен, если флажок не установлен.
Я придумаю этот код:
<form>
<input type="checkbox" id="pizza" name="pizza" value="yes"> <label for="pizza">
I would like to order a</label>
<select name="pizza_kind">
<option>(choose one)</option>
<option value="margaritha">Margaritha</option>
<option value="hawai">Hawai</option>
</select>
pizza.
</form>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">
</script>
<script>
var update_pizza = function () {
if ($("#pizza").is(":checked")) {
$("#pizza_kind").removeAttr("disabled");
}
else {
$("#pizza_kind").prop('disabled', 'disabled');
}
};
$(update_pizza);
$("#pizza").change(update_pizza);
</script>
Я пробовал различные методы , как установить атрибут инвалидов с помощью .prop()
, .attr()
и .disabled=
. Однако ничего не происходит. При применении <input type="checkbox">
вместо <select>
, код работает отлично.
Как отключить / включить <select>
использование jQuery?
Ответы:
Вы хотели бы использовать такой код:
Вот рабочий пример
источник
$('#pizza_kind').prop('disabled', false);
и$('#pizza_kind').prop('disabled', true);
. Как сказано в документации jQuery : свойства обычно влияют на динамическое состояние элемента DOM без изменения сериализованного атрибута HTML. Примеры включают свойство value элементов ввода, свойство disabled входов и кнопок или свойство флажка флажка. Метод .prop () следует использовать для установки отключенного и проверенного вместо метода .attr (). Метод .val () должен использоваться для получения и установки значения.Чтобы иметь возможность отключить / включить выборки, в первую очередь ваши выборки должны иметь идентификатор или класс. Тогда вы можете сделать что-то вроде этого:
Отключить:
Включить:
источник
.removeAttr()
больше не устанавливает свойства в false jquery.com/upgrade-guide/3.0/… stackoverflow.com/a/13626565/125981Выключено является булевой Атрибут от выбора элемента , как заявлено WHATWG , это означает , что правильный способ ОТКЛЮЧИТЬ с JQuery будет
Это сделало бы этот HTML
Это работает как для XHTML, так и для HTML (ссылка на W3School)
Тем не менее, это также может быть сделано с использованием его в качестве свойства
получение
Который работает только для HTML, а не XTML
ПРИМЕЧАНИЕ. Отключенный элемент не будет отправлен с формой, на которую дан ответ в этом вопросе: Отключенный элемент формы не отправлен.
ПРИМЕЧАНИЕ 2. Отключенный элемент может быть серым.
ЗАМЕТКА 3:
TL; DR
источник
Просто используйте:
DEMO
источник
Используйте следующее:
Или просто добавьте
id="pizza_kind"
в<select>
тег, как<select name="pizza_kind" id="pizza_kind">
: ссылка jsfiddleПричина, по которой ваш код не работает, заключается в том, что
$("#pizza_kind")
он не выбирает<select>
элемент, потому что его нетid="pizza_kind"
.Изменить: на самом деле, лучший селектор
$("select[name='pizza_kind']")
: ссылка jsfiddleисточник
У вас
select
нет идентификатора, только имя. Вам нужно изменить ваш селектор:Демо: http://jsbin.com/imokuj/2/edit
источник
извините за ответ в старом потоке, но, возможно, мой код поможет другим в будущем. я был в том же сценарии, что, когда флажок будет установлен, то несколько выбранных полей ввода будут активированы, в противном случае отключено.
источник
Хороший вопрос - я думаю, что единственный способ добиться этого - отфильтровать элементы в списке.
Вы можете сделать это через плагин jquery. Проверьте следующую ссылку, она описывает, как добиться чего-то похожего на то, что вам нужно. Спасибо
jQuery отключить опции SELECT на основе выбранного радио (нужна поддержка всех браузеров)
источник