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


97

私はこのような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);
});

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

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


1
何を達成したいのか
わかり

はい、本当に値はAJAX呼び出しの方法...から来るので
jcvegan

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

はい私はそれを知っています、しかしそれを修正する方法...つまり...ユーザーはこのコントロールの選択を見る必要があります
jcvegan

回答:


148

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

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

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


29
より良い解決策は$('select[name=selValue]').val(1);$('.selectpicker').selectpicker('refresh');次のとおりです。この方法では、非表示の選択のみを変更し、selectpicker( 'refresh')を呼び出してボタンを再描画します。
blushrt 2013

はい、この方法はより良い@blushrtで、私の回答に追加されました
Tom Sarduy 2014年

ユーザーが個人的に選択した事前選択値を選択できないという同じ問題に直面しています。
Srikanth Pullela、2015年

その後selectpickerを更新する必要がありますか?@TomSarduy
ankit suthar 2017年

@ankitsuthar、はい
Tom Sarduy

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

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


8
これが正解です!.selectpicker( 'refresh')コマンドを呼び出すことは、selectpickerを使用したドロップダウンリストの現在の値を選択して更新するために重要です。すべての.selectpicker要素での更新の呼び出しは遅くなる可能性があることに注意してください。オブジェクトを操作することがわかっている場合は、その単一の選択リストで更新を呼び出すことをお勧めします。
nocarrier 2014

$('.selectpicker').selectpicker('refresh'); 1ページに多くのselectpickerがあると、パフォーマンスが低下する可能性があります
Michel

私が見つけた別の問題は、これは選択にチェックを入れないことです。
Sajeer Babu

43
$('.selectpicker').selectpicker('val', YOUR_VALUE);

私はあなたの解決策を試しましたが、値を選択していて、データを格納しているリソースから同じものを取得していますが、選択で「何も選択されていません」と表示されています。
Shilpi Jaiswal

16

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

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



3

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

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

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

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

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


私はあなたの解決策を試しましたが、値が選択されていて、データを格納しているリソースから同じものを取得していますが、選択で「何も選択されていません」と表示されています。
Shilpi Jaiswal

3

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

セレクターの代わりに、セレクターをクラスまたはIDのいずれかに指定できます。 $('#mySelect').selectpicker('val',your_value)



1

ブラッシャートのわずかなバリエーションオプションに「ハードコードされた」値がない場合(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>。この場合、デフォルトでは何も選択されていませんが、最初の項目が常に選択されるようにしました。


1

@blushrtの素晴らしい回答に基づいて、この応答を更新します。ただ使う-

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

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


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

Abd、json形式をajaxに渡すphpスクリプトがあります。json形式は次のようになります:"car": "8"、 "colors": "red、blue、white"}。この場合、selectpicker内でチェックされたオブジェクト「colors」を、このメソッドを使用してどのように挿入できますか$( '。selectpicker')。selectpicker( "val"、 "data.colors");
ミシェルザビエル

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

「0」は選択したいアイテムの値です


0

これを行うもう1つの方法は、このキーワードを使用して、このオブジェクトを取得し、その値を操作することです。例:

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


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

ブートストラップのselectpickerが別の方法に変更されて表示されるため、値を取得するにはoption:selectedを入力するだけです。しかし、まだ選択されています


-1

要素のユーザーID

document.getElementById('selValue').value=Your Value;
$('#selValue').selectpicker('refresh');

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.