Отключение выбора раскрывающегося списка, когда установлен флажок
Я реализовал выборку в моей HTML-форме. Однако раскрывающийся список становится активным только при нажатии флажка "включить". Я знаю, что на объекте selectize есть свойство disable, но я не знаю, как его использовать, когда установлен флажок.
Я попытался добавить отключенный класс к элементу selectize div, но это тоже не работает. Любая помощь будет оценена по достоинству.
Спасибо
3 ответа
Я хотел добавить дополнительный ответ здесь, потому что, хотя ответ @tclark333 является правильным, он немного вводит в заблуждение, поскольку первая строка - это фактическая инициализация объекта выбора, а не фактически то, что нужно для ответа.
API selectize открывается при доступе к свойству selectize базового элемента из объекта jQuery, а не как расширение самого jQuery.
Предполагая, что элемент, который был выбран идентификатор, является "myDropDown":
//disable
$('#myDropDown')[0].selectize.disable();
//re-enable
$('#myDropDown')[0].selectize.enable();
Это немного странно, как вы должны это настроить. Вот что работает для меня.
var select = $("#YourDropDownId").selectize();
var selectize = select[0].selectize;
selectize.disable();
Этот метод помещает автоматически заблокированный класс для каждого выбора, если родительский элемент доступен только для чтения (используйте свою собственную логику, чтобы выбрать только для чтения)
$('.custom-select-2').each(function(){
$(this).selectize({
create: true,
sortField: {
field: 'text',
direction: 'desc'
}
});
if ($(this).is('[readonly]')) {
$(this)[0].selectize.lock();
}
})
после того, как вы можете настроить выбор с помощью этого css
select[readonly]{
pointer-events: none;
background-color: #e9ecef;
}
.selectize-input.items.full.has-options.has-items.locked {
background-color: #e9ecef;
}
Результат:
function generateCircle(id , jPath){
var formId =$("#"+id).closest(".data_details_accord").find("form");
var select = formId.find("select");
/*disable select initially*/
select.each(function(){
var thisSelect = $(this).selectize();
thisSelectDisable = thisSelect[0].selectize;
thisSelectDisable.disable();
});
/***********/
$.ajax({
url: jPath,
data:formVlaz,
success: function(result){
},error: function (xhr , status, eror) {
},complete: function (xhr) {
/*enable select when ajax complete*/
select.each(function(){
var thisSelect = $(this).selectize();
thisSelectDisable = thisSelect[0].selectize;
thisSelectDisable.enable();
});
/********/
}
});
};