web-dev-qa-db-ja.com

ブートストラップからselectpickerプラグインを使用して選択時に選択した値を設定する方法

次のような 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);
});

しかし、何も起こりません。

どうすればこれを達成できますか?

85
jcvegan

値は正しく選択されていますが、プラグインが実際の選択を非表示にし、順序付けられていないリストでボタンを表示するため、あなたはそれを見ることができませんでした。 :

//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:

複数の値を選択するには、値を配列として渡します。

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

これはあなたがする必要があるすべてです。生成されたselectpickerのhtmlを直接変更する必要はありません。単に非表示の選択フィールドを変更してから、selectpicker( 'refresh')を呼び出します。

59
blushrt
$('.selectpicker').selectpicker('val', YOUR_VALUE);
37
Jesterhead

値の設定に「val」パラメータが使用されている場合、更新は必要ありません fiddleを参照 。選択した複数の値を有効にするには、値に括弧を使用します。

$('.selectpicker').selectpicker('val', [1]); 
15
cederlof
$('#mybutton').click(function(){
   $('select[name=selValue]').val(1);
   $('select[name=selValue]').change();
});

これは私のために働いた。

9

実際には値は設定されていますが、選択ピッカーは更新されていません

ドキュメントから読むことができるように
https://silviomoreto.github.io/bootstrap-select/methods/#selectpickerval

これを行う正しい方法は

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

複数の値の場合、値の配列を追加できます

$('.selectpicker').selectpicker('val', [1 , 2]);
7
Hillar Kapsta

要素でvalメソッドを呼び出すことにより、選択した値を設定できます。

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

これにより、複数選択ですべてのアイテムが選択されます。

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

詳細はサイトで入手できます: https://silviomoreto.github.io/bootstrap-select/methods/

3
Awanish Kumar
var bar= $(#foo).find("option:selected").val();
2
abdul

blushrt'sのわずかなバリエーションは、オプションの「ハードコーディングされた」値がない場合(つまり、1、2、3、4など)の回答です。

一部のユーザーの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');

複数のキーワード<select multiple>を使用したselectでこれを使用しました。この場合、デフォルトでは何も選択されていませんが、最初のアイテムが常に選択されるようにしました。

1
$('.selectpicker option:selected').val();

ブートストラップのselectpickerが変化し、さまざまな方法で表示されるため、値を取得するにはoption:selectedを配置するだけです。しかし、まだそこに選択を選択

0
Fabio Almeida

また、複数値に対してこれを呼び出すことができます

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

詳細はこちらをご覧ください https://developer.snapappointments.com/bootstrap-select/methods/

0
Andrew Van Beek

@blushrtの素晴らしい答えに基づいて、この応答を更新します。使用するだけで-

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

セレクタに必要なものをすべてプリロードしている場合に機能します。

0
Yonatan
$('.selectpicker').selectpicker('val', '0');

「0」は選択するアイテムの値です

0
kevin3954

それを行う別の方法は、thisキーワードを使用すると、単純にオブジェクトをthisそしてその値を操作します。例:

$("select[name=selValue]").click(
    function() {
        $(this).val(1);
    });
0
Mohd Naved