2017-04-26 20 views
2

我有一個select2下拉列表,其中有一個Regions列表。我需要一個以逗號分隔的選定值列表。獲取逗號分隔Select2下拉列表中的選定文本。

@Html.ListBox("regionSelect", regions, new { id = "regionSelect", @class = "form-control", multiple = "multiple" }) 

而jQuery代碼

if ($('#regionSelect :selected').text() != "----------- Select Region ---------") 
      var selected = $('#regionSelect :selected').text(); 

我得到的選擇Region1Region2Region3結果。我可以根據whenevr將它們拆分爲「R」,然後在兩者之間插入逗號。但是我有很多這樣的列表框,我不想爲每個列表框做。

有沒有一種通用的方法呢?我試過this answer,它返回給我undefined。

回答

1

每在Select2 jquery - How to get text in selectbox

更新找到了答案:隨着選擇二的最新版本,數組對象返回,所以文本具有如下(更新以及的jsfiddle鏈接)來訪問

$(test).select2('data')[0].text //instead of $(test).select2('data').text

multiple="multiple"更新了例:

https://jsfiddle.net/Twisty/0st5hdzr/

您的代碼將是這樣的:

var selected = []; 
if ($("#regionSelect").select2('data').length){ 
    $.each($("#regionSelect").select2('data'), function(key, item){ 
    selected.push(item.text); 
    }); 
} 

希望有所幫助。

+0

工作正常。在第2行添加'for $('#regionSelect)。 –

+0

@Piggy更新。 – Twisty