Как установить выбранное значение на выбор с помощью плагина selectpicker из bootstrap
Я использую Bootstrap-Select плагин такой:
HTML:
<select name="selValue" class="selectpicker">
<option value="1">Val 1</option>
<option value="2">Val 2</option>
<option value="3">Val 3</option>
<option value="4">Val 4</option>
</select>
Javascript:
$('select[name=selValue]').selectpicker();
Теперь я хочу установить значение, выбранное для этого выбора при нажатии кнопки... что-то вроде этого:
$('#mybutton').click(function(){
$('select[name=selValue]').val(1);
});
но ничего не происходит.
как я могу добиться этого?
13 ответов:
значение выбрано правильно, но вы его не видели, потому что плагин скрывает реальный выбор и показывает кнопку с неупорядоченным списком, поэтому, если вы хотите, чтобы пользователь видел выбранное значение на выборе, вы можете сделать что-то вроде этого:
//Get the text using the value of select var text = $("select[name=selValue] option[value='1']").text(); //We need to show the text inside the span that the plugin show $('.bootstrap-select .filter-option').text(text); //Check the selected attribute for the real select $('select[name=selValue]').val(1);Edit:
Как указывает @blushrt, лучшим решением является:
$('select[name=selValue]').val(1); $('.selectpicker').selectpicker('refresh')Edit 2:
чтобы выбрать несколько значений, передайте значения в виде массива.
$('select[name=selValue]').val(1); $('.selectpicker').selectpicker('refresh');Это все, что вам нужно сделать. Нет необходимости изменять сгенерированный html selectpicker напрямую, просто измените скрытое поле выбора, а затем вызовите selectpicker('refresh').
обновление не требуется, если для установки значения используется параметр "val",посмотреть скрипка. Используйте скобки для значения, чтобы включить несколько выбранных значений.
$('.selectpicker').selectpicker('val', [1]);
$('#mybutton').click(function(){ $('select[name=selValue]').val(1); $('select[name=selValue]').change(); });это сработало для меня.
На самом деле ваше значение установлено, но ваш selectpicker не обновляется
Как вы можете прочитать из документации
https://silviomoreto.github.io/bootstrap-select/methods/#selectpickervalправильный способ сделать это было бы
$('.selectpicker').selectpicker('val', 1);для нескольких значений вы можете добавить массив значений
$('.selectpicker').selectpicker('val', [1 , 2]);
вы можете установить выбранное значение, вызвав метод val на элементе.
$('.selectpicker').selectpicker('val', 'Mustard'); $('.selectpicker').selectpicker('val', ['Mustard','Relish']);при этом будут выбраны все элементы в режиме множественного выбора.
$('.selectpicker').selectpicker('selectAll');подробности доступны на сайте : https://silviomoreto.github.io/bootstrap-select/methods/
небольшая вариация blushrt это ответ, когда у вас нет "жестко" значения параметров (т. е. 1, 2, 3, 4 и т. д.)
допустим, вы делаете
<select>со значениями параметров, являющимися GUID некоторых пользователей. Затем вам нужно будет каким-то образом извлечь значение параметра, чтобы установить его на<select>.в следующем мы выбираем первый вариант выбирать.
HTML:
<select name="selValue" class="selectpicker"> <option value="CD23E546-9BD8-40FD-BD9A-3E2CBAD81A39">Dennis</option> <option value="4DDCC643-0DE2-4B78-8393-33A716E3AFF4">Robert</option> <option value="D3017807-86E2-4E56-9F28-961202FFF095">George</option> <option value="991C2782-971E-41F8-B532-32E005F6A349">Ivanhoe</option> </select>Javascript:
// Initialize the select picker. $('select[name=selValue]').selectpicker(); // Extract the value of the first option. var sVal = $('select[name=selValue] option:first').val(); // Set the "selected" value of the <select>. $('select[name=selValue]').val(sVal); // Force a refresh. $('select[name=selValue]').selectpicker('refresh');мы использовали это в выборе с несколькими ключевыми словами
<select multiple>. В этом случае ничто не выбирается по умолчанию, но мы хотели, чтобы первый элемент всегда выбирается.
$('.selectpicker').selectpicker('val', '0');С '0', являющимся значением элемента, который вы хотите выбрать
Ну другой способ сделать это, с этой сайта, вы можете просто получить объект в этой и манипулировать его значение. Например:
$("select[name=selValue]").change( function() { $(this).val(1); });
идентификатор пользователя для элемента, затем
document.getElementById('selValue').value=Your Value; $('#selValue').selectpicker('refresh');
Comments