Bootstrap-select добавить элемент и выбрать его

Я использую Silstio Moreto Bootstrap Select.

На моей странице у меня есть кнопка, которая открывает модальную форму с полем ввода, позволяющим добавить элемент к элементу selectpicker. Затем я хотел бы автоматически выбрать этот элемент, но я не могу заставить его работать.

Код, который у меня есть:

$('#myselect').append('<option val="'+newitemnum+'">'+newitemdesc+'</option>');
$('#myselect').val(newitemnum);
$('#myselect').selectpicker('refresh');

Но это просто не работает. Элемент не выбран.

Я попытался заменить строку выбора на:

$('#myselect').selectpicker('val',newitemnum);

но это не работает.

Любые идеи, которые были высоко оценены (хотя элемент добавляется в selectpicker).

Ответ 1

У вас есть опечатка. Вместо:

$('#myselect').append('<option val="'+newitemnum+'">'+newitemdesc+'</option>');

Вам нужно:

$('#myselect').append('<option value="'+newitemnum+'">'+newitemdesc+'</option>');

Вот демон JSFiddle: http://jsfiddle.net/xbr5agqt/

Кнопка "Добавить и выберите" Соевый соус "добавит следующее:

$("#myselect").append('<option value="'+newitemnum+'">'+newitemdesc+'</option>');
$("#myselect").val(4);
$("#myselect").selectpicker("refresh");

Один слегка более быстрый подход (используемый кнопкой "Добавить и выберите" Повторить "), чтобы добавить новую <option> элемент с уже примененным атрибутом selected:

$("#myselect").append('<option value="'+newitemnum+'" selected="">'+newitemdesc+'</option>');
$("#myselect").selectpicker("refresh");

Ответ 2

Для динамического добавления options в bootstrap-selectpicker, append option к select и refresh selectpicker

$(document).on('click','#addOptions',function(){
  var newitemnum = Math.floor(Math.random() * 100) + 1;
  var newitemdesc = "Item "+ newitemnum;
  
  // Append the option to select
  $('#myselect').append('<option value="'+newitemnum+'">'+newitemdesc+'</option>');
  
  // Set the select value with new option
  $("#myselect").val(newitemnum);
  
  // Refresh the selectpicker
  $("#myselect").selectpicker("refresh");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="#" onclick="location.href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css'; return false;" />
<script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>


<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="#" onclick="location.href='https://cdn.jsdelivr.net/npm/
/*  */