jQuery以CSV格式获取剩余的OPTION值

时间:2009-05-18 23:31:48

标签: jquery

我希望返回一个CSV格式的字符串,用SELECT框中的OPTION值设置输入文本字段的值。

  

$ .map($('addedchargeamtid option'),   function(e){var exp =   $(E)的.text();警报(EXP); })

在使用map函数时,它每次都会覆盖该值。无法弄清楚如何以某种方式将这些连接在一起。

顺便说一句,感谢今天所有的jQuery Gurus,我的问题上有很多道具!!!

UPDATING:

<option value="123">123</option>
<option value="asd">asd</option>
<option value="trr">trr</option>
<option value="345">345</option>

我需要这个:

123,ASD,TRR,345

但选项是动态的,可以添加或删除,因此可能有1或100

NEW:

这有点好用。当我只添加一次时,它为我提供了同一项目的4个选项。也不会使用CSV值

更新隐藏文本字段
// Add remove button
$('#addButton').click(function() {
   $('#removeButton').show();

   // Add 
   var myOptions = $('#typedchargeamtid').val();
   $.each(myOptions, function() {
      $('#addedchargeamtid').append(
         $('<option></option>').val(myOptions).html(myOptions)
      );
   });

   var txt = $('#addedchargeamtid').val() || [];
      $('#commasepchargeamtid').val(txt.join(','));
   });

再次感谢

2 个答案:

答案 0 :(得分:6)

您可以使用每个而不是地图:

    var options = Array();
    $('#addedchargeamtid option').each(function(index){
        options[index] = $(this).val();
    });

    $('#commasepchargeamtid').val(options.join(','));

答案 1 :(得分:0)

JQuery documentation声明在select上使用$ .val()函数将返回所选值的列表。只需将其与array.join一起使用就可以实现您所寻找的目标。

var txt = $('#addedchargeamtid option').val() || [];
$('#myinputbox').val(txt.join(','));

或者Javascript 1.8中有array.reduce函数

var txt = $('#addedchargeamtid option').val() || [];
$('#myinputbox').val(txt.reduce(
   function(prev, next, index, array){
       return prev + "," + next;
   },
   '')
);