Документация по выбору уже объясняет, как использовать функцию create: function (input, callback) {....}, чтобы добавить новый элемент в базу данных.selectize.js call href, чтобы добавить новую опцию
В моем случае базовая модель selectbox содержит не только имя параметра, но и другие данные.
P.e .: У меня есть selectbox со странами. Варианты заполняются из модели «Страны», которая содержит «country_name», «top_level», «currency». В поле выбора отображается только «country_name». Если пользователь хочет добавить новую страну, я хочу открыть загрузочный мод, позволить пользователю добавлять новые данные страны, а после сохранения я хочу обновить selectbox с помощью refreshOptions().
Я пытался изменить в selectize.js в строке 741 из
'option_create': function(data, escape) {
return '<div class="create">Add <strong>' + escape(data.input) + </strong>…</div>';
в
'option_create': function(data, escape) {
return '<a data-toggle="modal" data-keyboard="false" data-backdrop="static" data-target="#modal" href="... some link ...">New country</a>';
я могу увидеть ссылку после написания не существующей страны в seletbox, но когда я нажимаю на ничего не происходит.
Как это исправить? Я уже близко, чтобы сдаться :-)
++++++++++++++++++++++++++++++++++ Javascript для удаления опции:
<script type="text/javascript">
$(".chosen-search-94-departID").selectize({
create: true,
sortField: {field: 'text'},
onOptionAdd: function (value, $item) {
var link='... link ...' + value;
load_modal_content (link, '... csrf ...');
$('#modal').modal('show');
$item.selectize.removeOption(value);
},
});
спасибо. Он работал (почти). Но у меня все еще есть проблема: когда пользователь пишет новую опцию, открывается модальный вид - где пользователь должен добавить новые данные для этой опции. Теперь пользователь решает не добавлять новую опцию. Он закрывает модальный вид, но новый вариант по-прежнему можно выбрать. Есть ли способ остановить выбор из автоматического добавления новой опции? Если опция действительно сохранена в базе данных, я бы добавил ее после закрытия модального. – sascha2014
Затем используйте removeItem() (и, возможно, removeOption()), чтобы исключить неполную опцию. – PhiLho
Снятие не работает. Я уверен, что мой код не правильный. Не могли бы вы посмотреть? Я добавил свой код выше. Спасибо! – sascha2014