因此,如果您有一个html列表框,也称为多选,并且您希望生成一个逗号分隔的字符串,列出该列表框中的所有值,您可以使用以下示例执行此操作. list_to_string()js函数是这里唯一重要的事情.你可以在http://josh.gourneau.com/sandbox/js/list_to_string.html玩这个页面
<html>
<head>
<script>
function list_to_string()
{
var list = document.getElementById('list');
var chkBox = document.getElementById('chk');
var str = document.getElementById('str');
textstring = "";
for(var i = 0; i < list.options.length; ++i){
comma = ",";
if (i == (list.options.length)-1){
comma = "";
}
textstring = textstring + list[i].value + comma;
str.value = textstring;
}
}
</script>
</head>
<body>
<form>
<select name="list" id="list" size="3" multiple="multiple">
<option value="India">India</option>
<option value="US">US</option>
<option value="Germany">Germany</option>
</select>
<input type="text" id="str" name="str" />
<br /><br />
<input type="button" id="chk" value="make a string!" name="chk" onclick="list_to_string();"/>
</form>
</body>
</html>
解决方法:
IE上的字符串连接非常慢,请使用数组:
function listBoxToString(listBox,all) {
if (typeof listBox === "string") {
listBox = document.getElementById(listBox);
}
if (!(listBox || listBox.options)) {
throw Error("No options");
}
var options=[],opt;
for (var i=0, l=listBox.options.length; i < l; ++i) {
opt = listBox.options[i];
if (all || opt.selected ) {
options.push(opt.value);
}
}
return options.join(",");
}