Jquery удалить элемент из выпадающего списка
В нашем жерехе.Net application (*NOT* MVC), у нас есть выпадающий список Kendo-UI, который заполняется в файле Default.master. Сам элемент управления заполняется во внешней "глобальной" сборке, и я не могу изменить код в этой сборке.
Я хочу удалить элемент из ddl, но не из коллекции, к которой привязан ddl (?).
Правка 2020.02.14 =============================
Я потрогал его, но я не на работе, и не помню, что это было, чтобы исправить это. Я проверю это во вторник (у нас выходной понедельник). Кажется, я помню, что мне нужно было изменить селектор на что-то вроде
"#[ID*='ddlList']"
Что я уже пробовал:
Я попытался добавить следующее в раздел сценария файла Default.master:
$("#ddlList option[value='2']").remove();
а это:
$("#ddlList option[value='2']").hide();
а также это:
$("#ddlList").ajaxComplete(function() { $("#ddlList option[value='2']").remove(); }
РЕДАКТИРОВАТЬ =================
Я также попробовал это (из-за произвольного украшения id, которое ASP.Сеть делает):
$("[ID*='ddlList'] option[value='2']").hide();
Кстати, я проверил, что ddl содержит опцию, которую я ищу, но скрытие/отключение ее, похоже, не имеет никакого эффекта.
РЕДАКТИРОВАТЬ ======================
Этот:
$("[ID*='ddlList']").find("option.contains('2')").hide();
на самом деле меняет необходимый параметр для этого:
<option value="2" style="display:none;">2</option>но элемент по - прежнему отображается в раскрывающемся списке.
ZurdoDev
$("#ddlList option[value='2']").remove(); будет работать, так что просто отладьте его. Но почему он у вас есть в .ajaxComplete?
#realJSOP
Это было что-то, что я пробовал, без какой-либо основы в опыте. Да, это был удар ножом в темноте.
ZurdoDev
Так же как и код, но не в ajaxComplete. Я сомневаюсь, что это мероприятие проходит. Просто добавьте код из любой функции, которую вы хотите удалить.
Richard Deeming
Документация предполагает, что вы не можете удалить элемент, не удалив его из источника данных. Возможно, вы могли бы использовать пользовательский шаблон, чтобы скрыть или отключить его вместо этого?
ZurdoDev
Трудно поверить, что jquery находится на стороне клиента, и там можно что-то изменить без ведома сервера. Это может в конечном итоге вызвать проблемы с моделью при отправке обратно, но я сомневаюсь в этом.
Richard Deeming
Для кендо UI, похоже, модели в JavaScript, а также. Я не знаю, будут ли изменения отправлены обратно на сервер, но я предполагал, что Джон не хотел удалять элемент из коллекции на стороне клиента.
Хотя я предполагаю, что это может быть просто версия MVC; возможно, версия WebForms работает по-другому.
Richard Deeming
Используете ли вы Кендо.данных.Источник данных[^] чтобы связать список? Похоже, что вы могли бы использовать фильтр[^] свойство для фильтрации элемента, который вам не нужен.
#realJSOP
ммм, я не знаю - мне нужно покопаться в этом спагетти-коде, чтобы найти его. снова.