2013-02-20 31 views
7

我有GET问题多所有选择的选项中选择如何获得所有选择的选项的文本形式多选择使用JavaScript

<select multiple="" title="" class="" id="fm_delivery_or_collection" name="fm_fields[fm_delivery_or_collection][]"> 
    <option value="90">Delivery or Collection1</option> 
    <option value="91">Delivery or Collection2</option> 
    <option value="92">Delivery or Collection3</option> 
</select> 

贝娄是我的代码和它返回我只有第一个选择的选项

var select = form.find('select') 

for (var i = 0; i < select.length; i++) 
     { 
      var s_id = jQuery(select[i]).attr('id'); 
      var str="",i; 

      var e = document.getElementById(s_id); 
      var strUser = e.options[e.selectedIndex].text; 

      var name = jQuery(select[i]).attr('name') 
      var str1 = jQuery(select[i]).attr('id').replace("fm_"," ") 
      requestString += "<b>"+str1.replace(/_/g," ")+"</b>" + ':' +strUser+"<br>"; 
     } 

所以请建议我如何获取所有选定的选项文本和我犯的错误?

+0

的价值'选择multiple'(或'选择[select.selectedIndex]')是一个数组... – Teemu 2013-02-20 05:15:16

+0

答案过于复杂。您可以使用.map()获取所有选定的选项文本。 $(“select:selected”)。map(function(i,element){return jQuery(element).text();})。get();' – 2018-01-30 10:08:05

回答

23

您的评论please suggest me how can i get all selected option textSo you can try this

$("#fm_delivery_or_collection option:selected").each(function() { 
    var $this = $(this); 
    if ($this.length) { 
    var selText = $this.text(); 
    console.log(selText); 
    } 
}); 
2

尝试用这种

$("#fm_delivery_or_collection option").each(function(){ 
    if($(this).attr('selected') == 'selected') 
    { 
     var name = $("#fm_delivery_or_collection").attr('name') 
     var str1 = $("#fm_delivery_or_collection").attr('id').replace("fm_"," ") 
     requestString += "<b>"+str1.replace(/_/g," ")+"</b>" + ':' +strUser+"<br>"; 
    } 
}) 
+0

这是否正常工作.. ?? – Gautam3164 2013-02-20 05:19:58

+0

你好......... @ user123是否正在工作......你需要回复 – Gautam3164 2013-02-20 05:26:50

+0

好吧Gautam为什么这样会起作用? – Jai 2013-02-20 05:35:27

11
// Return an array of the selected opion values 
// select is an HTML select element 
function GetSelectValues(select) { 
    var result = []; 
    var options = select && select.options; 
    var opt; 

    for (var i=0, iLen=options.length; i<iLen; i++) { 
    opt = options[i]; 

    if (opt.selected) { 
     result.push(opt.value || opt.text); 
    } 
    } 
    return result; 
} 

通过这个功能您的选择框像..

var selectBox = document.getElementsById('fm_delivery_or_collection'); 
alert(GetSelectValues(selectBox)); 

它将返回选定值

的阵列通过使用jQuery

$('select#fm_delivery_or_collection').val() 

val函数调用select将返回一个数组,如果它的倍数。

0
$("#id :selected").each(function (i,sel) { 
    alert($(sel).text()); 
}); 

希望它有助于..

0

try this link

$("#selection option:selected").each(function() { 
    var $this = $(this); 
    if ($this.length) { 
    var selText = $this.text(); 
    console.log(selText); 
    $('#selected').append(selText+', '); 
    } 
}); 
相关问题