Member 12852998 Ответов: 1

Удаление элемента из выпадающего списка на основе элемента, выбранного в другом выпадающем списке в ASP MVC


Привет, я новичок в этом деле. asp.net mvc, могу ли я знать, как я могу проверить , существует ли значение выпадающего списка в предыдущем выпадающем списке, если существует, то удалите значение, если нет, то значение останется в выпадающем списке.
Например: у меня есть сыр , шоколад , клубника в выпадающем списке , затем я выбираю сыр , поэтому я хотел бы, чтобы сыр был удален из следующего выпадающего списка. Выпадающий список, который я использую, - это кендо. Спасибо.
Код ниже в поле зрения

<select class="form-control "
name="Choice[@ViewBag.CakeIndex].Category">
               @foreach (var flavor in ViewBag.Flavour)
               {
                   <option value="@flavor.id">@flavor.name</option>
               }
           </select>


Что я уже пробовал:

Я пробовал использовать cakes.Items.Remove(flavor); но я не уверен, какую переменную я должен использовать, чтобы удалить ее

Suvendu Shekhar Giri

Вы можете сделать следующее, чтобы найти соответствующий элемент-

yourDropdown.Items.FindByValue("ValueToFind") //pass the selected value here 

Member 12852998

Могу ли я узнать, куда мне следует поместить этот код ?

Suvendu Shekhar Giri

непосредственно перед строкой, где вы написали код для удаления элемента

F-ES Sitecore

Что означает "предыдущий выпадающий список"? Это выпадающий список на предыдущей странице? На той же странице? Вы хотите сделать это с помощью javascript или при отправке формы? Вы просто хотите, чтобы опция была удалена из выпадающего списка или вы хотите, чтобы она была удалена из ViewBag, из которого выпадающий список получает свои данные?

Вы не дали достаточно объяснений того, что вы хотите сделать, чтобы кто-то дал ответ.

Member 12852998

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

И javascript, и отправка формы будут в порядке , если это будет работать

Удалено из выпадающего списка

John C Rayan

Вы имеете в виду каскадные выпадающие списки на одной странице?

Member 12852998

да, но они разделены в разных представлениях, что означает, что они находятся на одной странице, но в mvc они разделены

Er. Puneet Goel

использовать jQuery...Дай мне знать, если тебе понадобится помощь.

Member 12852998

Привет, не могли бы вы мне помочь ? Я пробовал много примеров в интернете, но все еще не могу работать

Er. Puneet Goel

Пожалуйста, опубликуйте то, что вы пробовали с вашим html

Member 12852998

$(функция () {
$('select'). on ('change', функция () {
$("#row option: selected"). удалить();


});
});


и


$$('select'). each (функция (элемент) {
Событие.наблюдать(пункт 'Изменить', функция (е) {
ВАР Эл = Эл.srcElement;
ВАР вал = Эл.варианты[Эл.свойства selectedIndex].innerHTML будет;
$$('select'). each (функция (элемент) {
if (item != el) {
for (var i = 0; i & lt; item.options.длина; i++) {
if (item. options[i]. innerHTML == val) {
товар.метода removechild(пункт.варианты[я]);
}
}
}
});
});
});

Er. Puneet Goel

Пожалуйста, опубликуйте свой html-код также, чтобы мы могли получить вашу структуру, чтобы предоставить вам лучшее решение.

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

Member 12852998

 List<cake>
        Cake = ViewBag.Cakes;

    
        <label>Cakes</label>
        <select class="form-control required" id="row" name="cakes">
            <option value="">Choose Cake</option>
            @foreach (Cake cakever in Cakes)
            {
			  <option value="@cakever.id">@cakever.name</option>
            }
        </select>

1 Ответов

Рейтинг:
12

Er. Puneet Goel

$('select#select1'). on ('change', function (e) {
var optionSelected = $("option: selected", this);
var valueSelected = this. value;

ВАР существует = ложь;
$('select#select2 option'). each (функция () {
отладчик;
if (this. value == valueSelected) {
существует = истина;
$("select#select2 option[value='" + valueSelected + "']"). удалить();
}
});

});


Member 12852998

Извините, но код для выпадающего списка - это только одна строка, которая использует foreach для его циклического выполнения, могу ли я знать, где я могу определить select1 и select2?

Er. Puneet Goel

Select1 и select2-это выпадающие списки. Для реализации см. скрипач ниже:
https://jsfiddle.net/erpuneetgoel507/eum8m92v/