178

jQueryを使用して複数の選択ボックスの値を取得するにはどうすればよいですか?

4

9 に答える 9

309

.val()複数選択リストで関数を使用すると、選択した値の配列が返されます。

var selectedValues = $('#multipleSelect').val();

そしてあなたのhtmlで:

<select id="multipleSelect" multiple="multiple">
    <option value="1">Text 1</option>
    <option value="2">Text 2</option>
    <option value="3">Text 3</option>
</select>
于 2010-07-14T05:09:20.657 に答える
205

jQuery .val()

  var foo = $('#multiple').val(); 
于 2010-07-14T05:09:34.663 に答える
23

jsマップ関数を使用することもできます。

$("#multipleSelect :selected").map(function(i, el) {
    return $(el).val();
}).get();

そして、option要素の任意のプロパティを取得できます。

return $(el).text();
return $(el).data("mydata");
return $(el).prop("disabled");
etc...
于 2014-04-22T11:51:51.967 に答える
15

一行だけ-

var select_button_text = $('#SelectQButton option:selected')
                .toArray().map(item => item.text);

出力:["text1"、 "text2"]

var select_button_text = $('#SelectQButton option:selected')
                .toArray().map(item => item.value);

出力:["value1"、 "value2"]

.join()を使用する場合

var select_button_text = $('#SelectQButton option:selected')
                .toArray().map(item => item.text).join();

出力:text1、text2、text3

于 2019-04-30T22:50:14.847 に答える
12
var selected=[];
 $('#multipleSelect :selected').each(function(){
     selected[$(this).val()]=$(this).text();
    });
console.log(selected);

この問題へのさらに別のアプローチ。選択した配列にはオプション値としてインデックスがあり、各配列項目には値としてテキストがあります。

例えば

<select id="multipleSelect" multiple="multiple">
    <option value="abc">Text 1</option>
    <option value="def">Text 2</option>
    <option value="ghi">Text 3</option>
</select>

たとえば、オプション1と2が選択されている場合。

選択したアレイは次のようになります。

selected['abc']=1; 
selected['def']=2.
于 2014-05-19T07:06:59.557 に答える
6

HTMLコード:

 <select id="multiple" multiple="multiple" name="multiple">
  <option value=""> -- Select -- </option>
  <option value="1">Opt1</option>
  <option value="2">Opt2</option>
  <option value="3">Opt3</option>
  <option value="4">Opt4</option>
  <option value="5">Opt5</option>
 </select>   

JQueryコード:

$('#multiple :selected').each(function(i, sel){ 
    alert( $(sel).val() ); 

});

それがうまくいくことを願っています

于 2015-11-20T07:48:34.087 に答える
1

これを使うだけ

$('#multipleSelect').change(function() {
    var selectedValues = $(this).val();  
});
于 2017-07-04T07:51:00.103 に答える
0

選択した値をカンマ区切りで取得する

var Accessids = "";
$(".multi_select .btn-group>ul>li input:checked").each(function(i,obj)
{
    Accessids=Accessids+$(obj).val()+",";
});
Accessids = Accessids.substring(0,Accessids.length - 1);
console.log(Accessids);
于 2016-12-20T13:42:17.653 に答える
0

1つのページに複数の選択ボックスがあり、それらすべてに同じクラスがある場合は、トラッキングIDではなく複数の場合に優先できます。

$('.classname option:selected').map(function(){
    return this.value; // If you want value.
    // Or you could also do.
    return this.text; // If you want text of select boxes.
}).get(); // It will return an Array of selected values/texts.
于 2021-05-20T08:01:32.077 に答える