2011-10-27 81 views
20

我有<select multiple='multiple',我需要在頁面的div或其他部分顯示選定的值。用逗號分隔每個值多個選擇

我這樣做,但字符串都是在一起。我怎樣才能用逗號分隔每個值?

我做了一個live example到目前爲止。

或者如果你喜歡,這裏是代碼:

HTML:

<select multiple='multiple' id="selMulti"> 
    <option value="1">Option 1</option> 
    <option value="2">Option 2</option> 
    <option value="3">Option 3</option> 
    <option value="4">Option 4</option>  
</select> 
<input type="button" id="go" value="Go!" /> 
<div style="margin-top: 10px;" id="result"></div> 

JS:

$("#go").click(function(){ 
    var selMulti = $("#selMulti option:selected").text(); 
    $("#result").text(selMulti); 
}); 

如果您選擇選項1和2,結果將是:

Option 1Option 2

我需要的是:

Option 1, Option 2

感謝

+1

謝謝你在已經問過這個,所以我也沒有詢問並等待答案。 – lathomas64

回答

31

您需要的元素添加到數組地圖,然後加入他們的行列:

$("#go").click(function(){ 
    var selMulti = $.map($("#selMulti option:selected"), function (el, i) { 
     return $(el).text(); 
    }); 
    $("#result").text(selMulti.join(", ")); 
}); 

工作演示:http://jsfiddle.net/AcfUz/

+0

不錯,工作完美。謝謝 –

+3

相當怪異的偉大soloution! :) –

+0

這對我很好,謝謝! – lathomas64

3
$("#go").click(function(){ 
    var textToAppend = ""; 
    var selMulti = $("#selMulti option:selected").each(function(){ 
      textToAppend += (textToAppend == "") ? "" : ","; 
      textToAppend += $(this).text();   
    }); 
    $("#result").html(textToAppend); 
}); 
+0

需要在追加電話中加'+','' – JohnP

+0

OP特別要求用逗號分隔的結果。 –

+0

fiexed in answer :) –

0

一號線風格:

$("#selMulti option:selected").map(function(){return this.text}).get().join(', '); 

輸出:

"Option 1, Option 2"