Я пытаюсь добавить и удалить опцию выбора на основе другого поля. На этом сайте есть много ответов о добавлении и удалении опции, но мне нужно добавить только этот параметр, если он еще не существует. До сих пор у меня есть:Javascript добавляет и удаляет опцию выбора
function setCustomerOptions() {
var customers = getField('select', 'Customer');
if (getField('select', 'Campaign Type').value == 'Game' || getField('select', 'Campaign Type').value == 'Innovation') {
for (var i=0; i<customers.length; i++) {
if (customers.options[i].text == 'N/A') {
customers.remove(i);
}
}
} else {
if ($.inArray('N/A', customers.options.text) == -1) {
var opt = document.createElement('option');
opt.value = 'N/A';
opt.innerHTML = 'N/A';
customers.appendChild(opt);
}
}
}
Это успешно добавляет и удаляет опцию «N/A», однако, если я выбираю что-нибудь, кроме моих начальных условий я получаю добавил дополнительный «N/A». Я думал, что JQuery inArray может помочь, но нет.
Как узнать, существует ли опция выбора?
Можете ли вы поместить свой код в пример JSFiddle? и показать определение getField, так как я не вижу его –
Вот ссылка на аналогичный вопрос: http://stackoverflow.com/questions/646317/how-can-i-check-whether-a-option -readyready-in-select-by-jquery –
Я добавил JSFiddle: https://jsfiddle.net/imonkey/5u5hp7z2/4/, где он фактически работает. Моя база кода - Sharepoint 2007, поэтому я использую getField, чтобы сделать выбор по названию, а не id. Могут быть некоторые другие функции Sharepoint, которые вызывают добавление/N/A/несколько раз? – sansSpoon