Я пытаюсь получить список выбора/выпадающего списка jQuery Chosen для работы в модальном модуле Bootbox. У меня почти такой же точный код, который работает на стандартной HTML-странице, поэтому я подумал, что будет просто просто поместить мой список в модальный. Я произвожу мои дивы и выбрать объекты в модальных, а затем после того, как «показано», я называю Chosen:Выбранный выпадающий список не работает с Modal
div.on("shown", function() {
$(".chzn-select").chosen();
$(".chzn-select-deselect").chosen({allow_single_deselect:true});
myApp.init();
});
После этого, Избранный, кажется, сломана. Элементы выбора выделены серым цветом - я не могу их нажимать.
Внутри myApp.init() я заполняю выбранные элементы, и он работает.
За кулисами модальным, я могу видеть, что выбранный контейнер, кажется, инициализирован, но не переносит выбора опций на ЧЦЗ капли дел. На изображении chzn-results UL должны быть заполнены опциями. Вот версия модальный:
Вот что она должна выглядеть, из HTML версии:
В HTML версии, мой код в нижней части тела тега (аналогично в некоторых вариантах заселены в myApp.init()), и, похоже, это работает нормально. Порядок вызовов, кажется, идентичны ...
$(".chzn-select").chosen(); $(".chzn-select-deselect").chosen({allow_single_deselect:true});
$(document).ready(function(){
myApp.init();
});
Это не только вопрос г-индекса - я уже играл с этим не повезло. Кажется, что внутри модального, Chosen плагин каким-то образом запутался и не привязан или обновлен, хотя он был правильно инициализирован. Я не уверен, как устранить проблему и не могу найти других людей с одинаковой проблемой ... это заставляет меня думать, что это может быть проблема времени (но почему это работает в HTML?), Или я делаю что-то глупое (очень вероятно). Кто-нибудь есть предложения о том, где искать или что не так?
Спасибо!
============================
Добавление HTML для отдельных входов (на каждый вопрос Кристофера)
Для обеих версий, я заселить выберите с помощью следующего кода (отредактированную версию о том, что в myApp.init()):
$.ajax call to a RESTful URL
var callbackSuccess = function(data){
if (data) {
populateDropDownById(data, 'objectiveBanks');
//Other things
}
};
function populateDropDownById(data, elementId) {
$('#' + elementId).append('<option value = "null"> -- Select -- </option>');
$.each(data, function(id, bean) {
var name = bean.displayName.text;
var id = bean.id;
$('#' + elementId).append('<option value =' + id + '>' + name + '</option>');
});
}
фактические элементы сами по себе являются следующие. В нерабочем модальной версии:
var obj_banks_select = $('<select id="objectiveBanks" name="objectiveBank" onchange="populateObjectives()" tabindex="2"></select>')
.addClass('chzn-select')
.css({
'width': '330px',
'display': 'none'
});
И в рабочей версии HTML:
<div id="objectiveBanksWrapper">
<span id="objectiveBanksLabel" class="label"></span>
<select id="objectiveBanks" name="objectiveBank" onchange="populateObjectives()" class="chzn-select" tabindex="2" style="width: 330px; display: none;"></select>
<span id=objectiveBanksLoader class="dropDownLoader"></span>
</div>
Можете ли вы разместить свой HTML-код для ввода ввода? –
попробуйте вызвать 'myApp.init()' перед инициализацией выбранного плагина на ваших элементах –
@koala_dev huh, который работал в модальном режиме. Есть ли причина, по которой это работает одним способом в модальном, но другим способом в HTML? Это меня смущает. Я был бы рад принять это за ответ, если вы опубликуете его как один! Благодаря! – user