setTimeout(function(){
$('#noIdea').append($('<option>').val("ddd").text("Value 4"))
}, 1000);
setTimeout(function(){
let newval = "ddd";
let oldval = [];
oldval.push($('input[type="text"].mySelect').val());
//oldval = ($('#noIdea').val());
oldval.push(newval);
console.log (oldval)
$('.selectpicker').selectpicker('refresh');
$('.selectpicker').selectpicker('val', oldval);
}, 2000);
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap-select@1.13.12/dist/js/bootstrap-select.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-select@1.13.12/dist/css/bootstrap-select.min.css">
<select multiple id="noIdea" class="selectpicker mySelect" data-live-search="true">
<option value="aaa" selected>Value 1</option>
<option value="bbb" selected>Value 2</option>
<option value="ccc">Value 3</option>
</select>
我有一个Bootstrap Select,我需要在其中获取以前选择的值,并添加另一个(新)从外部推送的值。问题是:我不知道此选择的#id
,因为它是随机生成的,只有它的.class
。但是该类是唯一的,因为我在此页面上只有一个.mySelect
。
所以我要做的是:
let oldval = [];
oldval.push($('input[type="text"].mySelect').val()); //<- That is empty
oldval.push(newValueIreceived);
$('.mySelect').selectpicker('refresh');
$('.mySelect').selectpicker('val', oldval);
使用oldval.push($('#id').val());
即可。有人可以告诉我为什么在使用该类时没有得到价值吗?
答案 0 :(得分:1)
使用类作为选择器时,您可能会收到列表。您需要在列表上循环并推送值。
尝试一下:
let oldval = [];
$('input[type="text"].mySelect').each(function () {
if ($(this).val()){
oldval.push($(this).val());
}
});
请注意,如果您也可以共享HTML,我们将能够对其进行正确的调试/测试。