Я пытаюсь выяснить, как удалить параметры из окна выбора, когда эта опция была выбрана в смежном поле выбора. В основном пользователь имеет возможность добавлять несколько записей здесь с помощью полей выбора, но я хочу удалить список доступных им вариантов, чтобы, например, они не могли ввести одно и то же значение в два блока выбора.jQuery indexOf select box manipulation
Когда нажата кнопка Add More, я исчезаю в следующем контейнере контейнера. Ряд блоков выбора был сгенерирован PHP, и я использую JS, чтобы скрыть их. В каждом окне выбора есть уникальный номер, добавленный к идентификатору, поэтому я хочу получить доступ к этим ячейкам выбора, которые содержат строку «other_pet_types», затем я хочу выполнить итерацию по видимым в настоящее время и построить массив выбранных значений, который я затем удалю из списка параметров в только что появившемся поле выбора.
Это то, что у меня есть до сих пор, но это определенно не так - я не могу получить начальный тест на ID для работы.
Любые указатели очень ценятся, так как я понимаю, что я довольно широко отмечен на данный момент!
var vals = new Array();
//build array with currently selected options
$('p.mult_entries select').each(function(){
vals += $(this).val();
});
$("p.mult_entries:hidden:first").fadeIn("slow", function() {
$(this).find(('select').attr('id').indexOf('other_pet_types') > 0).each(function(){
console.log($(this).val()); //as expected prints nothing - need to iterate through the options of the above select
//once i extract the correct values, iterate through new select box and use inArray to remove options where that value already exists in one of previous select boxes
});
});
Спасибо за это Брэдли, очень аккуратный. У меня это почти работает, но Chrome бросает ошибку «неожиданный токен ILLEGAL» - я думаю, что это происходит из этой строки: $ (". Filter"). Not (this) .children(). Each (function() {. .... Любые идеи? – kenny99
Хммм ... это интересно. Я не получаю эту ошибку на хроме. Хром говорит вам, что такое незаконный токен? Следует отметить, что если вы скопируете и вставьте из jsFiddle, вы можете завершить с дополнительными вопросительными знаками в своем коде ... не знаю, почему это так. –
Ах, получил это - на самом деле не видел никаких дополнительных символов, но удалял все промежутки между кодом i, вставленным с jsFiddle, и тем, что у меня было до , должно быть, были некоторые нежелательные персонажи. Еще раз спасибо! – kenny99