Отключение опций в select - php & jquery - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть выбор с параметрами. Я хочу отключить параметры на основе идентификаторов. Некоторые опции имеют одинаковый идентификатор. Когда я отключаю опции, он отключает только один идентификатор (первый вариант из БД).

Как мне получить jquery, чтобы отключить все опции с id = 0

Файл. php

<select id="select_id" name="select_id">
   <option id="<?php echo $item->part; ?>"><?php echo $item->part; ?></option>
</select>
<script>
 $('#0').attr('disabled', 'disabled');
</script>

Ответы [ 4 ]

1 голос
/ 16 апреля 2020

Применение одного и того же идентификатора к нескольким элементам не является хорошей практикой. Я бы порекомендовал вам использовать класс в этом случае вместо id. А затем, чтобы отключить все, что вам нужно сделать:

$(".0").attr("disabled", "disabled");
0 голосов
/ 16 апреля 2020

Проблема, с которой вы столкнулись, заключается в том, что вы используете идентификаторы, а DOM ожидает, что идентификаторы будут уникальными, поэтому не будет работать рекурсивно. Пожалуйста, обновите ваш код, чтобы использовать html классы, а не ID.

IE

<select id="select_id" name="select_id">
   <option value="val1" class="sel1">01</option>
   <option value="val2" class="sel2">02</option>
   <option value="val3" class="sel3">03</option>
   <option value="val4" class="sel1">04</option>
</select>

Также, пожалуйста, не забудьте установить значение для ваших вариантов для лучшей практики.

0 голосов
/ 16 апреля 2020

Вы можете использовать атрибут класса или пользовательский атрибут, например данные, и вызывать его, используя селекторы jQuery.

<select id="select_id" name="select_id">
   <option data-id="<?php echo $item->part; ?>"><?php echo $item->part; ?></option>
</select>
<script>
 $('select option[data-id="0"]').attr('disabled', 'disabled');
</script>

Я думаю, вы пропустили добавление атрибута значения

0 голосов
/ 16 апреля 2020

Попробуйте:

html:

<select id="select_id" name="select_id">
   <option id="sel1">01</option>
   <option id="sel2">02</option>
   <option id="sel3">03</option>
   <option id="sel1">04</option>
</select>

jquery:

let searchId = 'sel1'
$('#select_id option[id="'+searchId+'"]').attr('disabled', 'disabled')

jsfiddle: https://jsfiddle.net/bmr1zsq9/

Я думаю, что это не очень хороший способ иметь несколько идентификаторов с одинаковыми значениями. Вы должны использовать имя или значение или значение класса, чтобы иметь действительный html

Надеюсь, что эта помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...