JQuery: получить выделенный текст как запятую, отделенную от поля выбора

<select id="testID" multiple="multiple">
   <option value="1">test Value1</option>
   <option value="2">test Value2</option>
   <option value="3">test Value3</option>
   <option value="4">test Value4</option>
   <option value="5">test Value5</option>
  <option value="6">test Value6</option>
</select>

<input type="button" value="Get dropdown selected Value" id ="select-values">

Я хочу получить выделенный текст с разделителями-запятыми.

Я пробовал,

 $("#select-values").click(function () {
     $("select option:selected").text();
});

говорит, что я выбрал первые два варианта выбора но я получаю значение test Value1test Value2

Я хочу, чтобы он был test Value1,test Value2

Ответ 1

Try

демонстрация скриптов

$("#select-values").click(function () {
    var option_all = $("select option:selected").map(function () {
        return $(this).text();
    }).get().join(',');
    console.log(option_all);
});

Ответ 2

Это похоже на самый быстрый способ:

$('#testID').val().toString()

Мне слишком ленив написать цикл for для этого

Ответ 3

Try:

$("#select-values").click(function () {
    var select = "";
    $("select option:selected").each(function(){
        select += ","+$(this).text();
    });
    if(select != ""){
        select = select.substr(1);
    }
    $("#selection").text(select);
});

Скрипт здесь.

Ответ 4

Попробуйте что-то вроде этого

$(document).ready(function () {
    $("#select-values").click(function () {
        var val = [];
        $("select option:selected").each(function () {
            val.push(this.text);
        });
        alert(val.join(','));
    });
});

Ответ 5

Знаете ли вы, когда хотите получить значение в поле множественного выбора, оно делает это автоматически? ^^

Просто измените значение ваших выборов:

<select id="testID" multiple="multiple">
   <option value="test Value1">test Value1</option>
   <option value="test Value2">test Value2</option>
   <option value="test Value3">test Value3</option>
   <option value="test Value4">test Value4</option>
   <option value="test Value5">test Value5</option>
  <option value="test Value6">test Value6</option>
</select>

Затем вы можете вызвать значение с помощью:

$('#testID').val();

Он автоматически разделяет значения запятой.

jsFiddle

Ответ 6

Try:

var selectedItems = ($.map($ ( "select [id * = select-values] option: selected" ), function (item, i) {  return $(item).text()})). join ( "," );