jQuery select2はselectタグの値を取得しますか?


95

こんにちは、これは私のコードです:

<select id='first'>
  <option value='1'> First  </option>
  <option value='2'> Second </option>
  <option value='3'> Three  </option>
</select>

これは私のselect2コードです:

$("#first").select2();

以下は、選択した値を取得するためのコードです。

$("#first").select2('val'); // It returns first,second,three.

これはのようなテキストを返しfirst,second,threeます1,2,3
テキストではなく選択ボックスの値が必要であることを意味します。


JSFiddleを提供できますか?それは非常に便利でしょう。
IonicăBizău

1
質問は明確ではありません。正確に何が欲しいですか?
Hiral 2013

回答:


147
$("#first").val(); // this will give you value of selected element. i.e. 1,2,3.

5
$( "#first")。val(); // 1,2,3を返すOR $( "#first")。select2( 'val'); //最初、
2、3を返します

$( "#first")。val(); 1,2,3(どちらかが選択されている)を返し、コードを関数select2()に投稿して詳細を確認できます。
somesh 2013

クラス名の代わりにID名で呼び出されるselectの場合は、次のように使用します:$( "。first")。val()
Rui Martins

@RuiMartinsは間違っています。IDは「#」で呼び出され、クラスは「。」で呼び出されるため、IDで呼び出すには$( "#first")。val()を使用し、CLASSには$( "。first"を使用します。 ).val()
ソースの重要事項

58

使用できるSelect要素を取得するには $('#first').val();

選択した値のテキストを取得するには- $('#first :selected').text();

select2()関数コードを投稿してください


1
$( "#first")。val(); // 1,2,3を返すOR $( "#first")。select2( 'val'); //最初、2番目、3番目に戻る
2013年

よくわかりませんが、私はあなたの質問を理解しました。
Krish R

1
select2プラグインを使用すると、$( "#first")。val()を使用して値を取得します。空白を返すものは何も返しません。
Khuntを2013

プラグインでフィドルの例を提供できますか?
Krish R

1
私は$('#first :selected').text();他のオプションを使用しなければならなかったすべての可能なオプションを返していました。
ジェフブルー

35

$("#first").select2('data') すべてのデータをマップとして返​​します


1
select2オブジェクトに追加のプロパティがある場合に非常に役立ちます
Shoe

9

ajaxを使用している場合は、選択直後に選択の更新された値を取得することをお勧めします。

//Part 1

$(".element").select2(/*Your code*/)    

//Part 2 - continued 

$(".element").on("select2:select", function (e) { 
  var select_val = $(e.currentTarget).val();
  console.log(select_val)
});

クレジット:Steven-Johnston


こんにちは、どこcurrentTargetから来たのか分かりますか?ID /名前の例は質問に関連していません。だから私はどこにも関係することはできません。
mastersuse

8

このソリューションでは、select要素を忘れることができます。選択要素にIDがない場合に役立ちます。

$("#first").select2()
.on("select2:select", function (e) {
    var selected_element = $(e.currentTarget);
    var select_val = selected_element.val();
});

4

簡単な答えは:

$('#first').select2().val()

そして、あなたもこの方法で書くことができます:

 $('#first').val()

3

これを試して :

$('#input_id :selected').val(); //for getting value from selected option
$('#input_id :selected').text(); //for getting text from selected option

@RenishKhuntここでの回答は、あなた(質問をしている人)だけでなく、このページを見ている他の人にも当てはまります。そして、より多くの異なるソリューションがここに提出されるほど、より良い選択は他のすべての人に再びあります:あなただけではありません:)
infografnet

うん、ごめんなさい。@infografnetに感謝します。回答を投稿してくださったFahmi Imanudinに感謝します:)
Khuntを

2

このフィドルを参照してください。
基本的にvalueは、- optionタグのs を取得したいが、select-nodeの値を常に取得しようとする$("#first").val()

したがって、option-tagsを選択する必要があり、jQuerysセレクターを利用します。

$("#first option").each(function() {
    console.log($(this).val());
});

$("#first option")optionidを持つ要素の子であるすべてを選択しfirstます。


$( "#first")。val(); // 1,2,3を返すOR $( "#first")。select2( 'val'); //最初、
2、3を返します

私はあなたの質問を間違っているようです、そしてあなたが達成したいことを正確に明確にしてください。
KeyNone 2013

select2プラグインを使用すると、$( "#first")。val()を使用して値を取得します。空白を返すものは何も返しません。
Khuntを2013

このフィドルを参照してください。私にとっては完璧に機能します。(外部リソースの下にselect2.jsを追加しましたが、ボックスが醜く見える理由はわかりません)。
KeyNone 2013

重要なのは、オプションタグの値を取得したいということです。
Darius.V 2015


0

他の答えがうまくいかなかったので、解決策を開発しました:

ターゲティングを簡単にするために、class = "option-item"オプションを作成しました

HTML:

<select id="select-test">
<option value="5-val" id="first-id" class="option-item"> First option </option>
</select>

次に、選択したオプションごとに、display noneプロパティを追加しました

CSS:

option:checked {
   display: none;
}

これで、SelectBoxに変更を追加して、単純な:hidden属性によって、プロパティnoneを表示する選択オプションを見つけることができます

jQuery:

$('#select-test').change(function(){
//value 
    $('#select-test').find('.option-item:hidden').val();
//id
    $('#select-test').find('.option-item:hidden').attr('id');
//text
    $('#select-test').find('.option-item:hidden').text();
});

作業フィドル:https : //jsfiddle.net/Friiz/2dk4003j/10/


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