109

我正在使用这样的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);
});

但什么也没有发生。

我怎样才能做到这一点?

4

19 回答 19

172

该值已正确选择,但您没有看到它,因为插件隐藏了真正的选择并显示一个带有无序列表的按钮,因此,如果您希望用户在选择上看到所选值,您可以执行类似这样的操作:

//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);

编辑:

就像@blushrt 指出的那样,更好的解决方案是:

$('select[name=selValue]').val(1);
$('.selectpicker').selectpicker('refresh')

编辑2:

要选择多个值,请将值作为数组传递。

于 2013-02-11T00:53:26.777 回答
82
$('select[name=selValue]').val(1);
$('.selectpicker').selectpicker('refresh');

这就是你需要做的。无需直接更改selectpicker生成的html,只需更改隐藏的select字段,然后调用selectpicker('refresh')即可。

于 2013-12-04T15:45:31.657 回答
48
$('.selectpicker').selectpicker('val', YOUR_VALUE);
于 2015-10-12T22:35:17.800 回答
17

如果“val”参数用于设置值,则不需要刷新,请参见 fiddle。为值使用方括号以启用多个选定值。

$('.selectpicker').selectpicker('val', [1]); 
于 2016-01-18T09:48:20.803 回答
11
$('#mybutton').click(function(){
   $('select[name=selValue]').val(1);
   $('select[name=selValue]').change();
});

这对我有用。

于 2013-05-21T07:06:22.827 回答
9

实际上您的值已设置,但您的选择器未刷新

正如您可以从文档中阅读的那样
https://silviomoreto.github.io/bootstrap-select/methods/#selectpickerval

正确的方法是

$('.selectpicker').selectpicker('val', 1);

对于多个值,您可以添加值数组

$('.selectpicker').selectpicker('val', [1 , 2]);
于 2016-12-01T15:37:51.687 回答
5

您可以通过在元素上调用 val 方法来设置选定的值。

$('.selectpicker').selectpicker('val', 'Mustard');
$('.selectpicker').selectpicker('val', ['Mustard','Relish']);

这将选择多选中的所有项目。

$('.selectpicker').selectpicker('selectAll');

详细信息可在网站上找到:https ://silviomoreto.github.io/bootstrap-select/methods/

于 2018-07-28T06:10:33.437 回答
5

$('selector').selectpicker('val',value);

代替选择器,您可以为您提供选择器类或 id,例如:$('#mySelect').selectpicker('val',your_value)

于 2020-06-23T09:27:14.597 回答
3
$('.selectpicker').selectpicker("val", "value");
于 2019-09-07T00:15:05.100 回答
2

当您没有选项的“硬编码”值(即 1、2、3、4 等)时, blushrt 的答案略有不同

假设您渲染一个<select>选项值是某些用户的 GUID。然后,您需要以某种方式提取选项的值,以便将其设置在<select>.

下面我们选择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');

我们在带有 multiple 关键字的选择中使用了它<select multiple>。在这种情况下,默认情况下没有选择任何内容,但我们希望始终选择第一项。

于 2015-04-29T18:25:05.380 回答
2
var bar= $(#foo).find("option:selected").val();
于 2016-04-29T04:41:40.633 回答
2

基于@blushrt 的出色回答,我将更新此回复。只是使用 -

$("#Select_ID").val(id);

如果您已将所需的所有内容预加载到选择器中,则可以使用。

于 2019-05-04T12:08:06.230 回答
1

此外,您可以将其称为多值

$(<your select picker>).selectpicker("val", ["value1", "value2"])

你可以在这里找到更多https://developer.snapappointments.com/bootstrap-select/methods/

于 2019-02-10T15:21:44.987 回答
1
$('.selectpicker option:selected').val();

只需输入 option:selected 即可获得价值,因为引导选择选择器更改为并以不同的方式出现。但是选择仍然有选择

于 2019-06-21T06:38:38.693 回答
1

当您使用Bootstrap Selectpicker时,您应该使用它来获取所选选项的值。

$('#membershipadmin').selectpicker("option:selected").val();
于 2022-03-04T06:54:18.987 回答
0

另一种方法是,使用this关键字,您可以简单地获取this中的对象并操作它的值。例如:

$("select[name=selValue]").click(
    function() {
        $(this).val(1);
    });
于 2018-05-08T06:29:20.200 回答
0
$('.selectpicker').selectpicker('val', '0');

'0' 是您要选择的项目的值

于 2017-12-18T04:15:34.537 回答
-1

用户 ID 对于元素,然后

document.getElementById('selValue').value=Your Value;
$('#selValue').selectpicker('refresh');
于 2016-05-07T10:17:37.320 回答
-3

使用它,它会工作:

 $('select[name=selValue]').selectpicker('val', 1);
于 2013-10-18T16:02:46.367 回答