#javascript #jquery #selectize.js #plunker
#javascript #jquery #selectize.js #plunker
Вопрос:
У меня есть простая настройка выбора, в которой я пытаюсь использовать ее getOption
и addOption
методы.
<select id="select">
<option value="0">Thomas Edison</option>
<option value="1">Nikola</option>
<option value="3">Nikola Tesla</option>
<option value="2">Arnold Schwarzenegger</option>
</select>
<button id="get-option">Get option</button>
<button id="add-option">Add option</button>
Я написал несколько JS для вызова методов в моем экземпляре selectize:
jQuery(function() {
var selectize = $('#select').selectize()[0].selectize;
$('#add-option').on('click', function() {
selectize.addOption({ text: 'Peter Pan' });
});
$('#get-option').on('click', function() {
console.log('Get option:', selectize.getOption(2)[0]);
});
});
К сожалению, addOption
функция, похоже, не добавляет опцию в поле выбора. Что еще хуже, getOption
вызов просто возвращается undefined
. Кроме того, если я добавлю multiple
в <select>
тег, оба вызова API будут работать должным образом.
Я создал плунжер, показывающий проблему.
Что я делаю не так?
Ответ №1:
Когда у вас есть выбор, который не является множественным, вы используете selectize.getValue()
для извлечения текущего значения.
И чтобы добавить опцию, вы должны предоставить свойство value для опции, и вы предоставляли только свойство text.
Так что, если вы просто пытаетесь получить выбранное значение, используйте:
jQuery(function() {
var selectize = $('#select').selectize()[0].selectize;
$('#add-option').on('click', function() {
selectize.addOption({ value: 99, text: 'Peter Pan' });
});
$('#get-option').on('click', function() {
console.log('Get option:', selectize.getValue());
});
});
Но в вашем примере попытка получить параметр со значением 2 кажется избыточной; вы знаете, что значение равно 2. Если вы можете подробнее объяснить, чего вы пытаетесь достичь, возможно, я смогу помочь дальше.
Документы могли бы быть более понятными, но все это есть. https://github.com/brianreavis/selectize.js/blob/master/docs/api.md#methods_options
Комментарии:
1. Спасибо за помощь. Во втором примере я пытался получить текст параметра со значением 2. Что касается документов, я обнаружил, что, хотя описания методов были в порядке, не было объяснения различий между
value
,option
иitem
. Возможно, различия будут очевидны для большинства людей.