我希望返回一个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(','));
});
再次感谢
答案 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;
},
'')
);