javascript - selectores - seleccionar id jquery
Genere una cadena delimitada por comas de elementos en un cuadro de lista HTML(selección múltiple) con Javascript (3)
La concatenación de cadenas es muy lenta en IE, use una matriz en su lugar:
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(",");
}
Entonces, si tiene un cuadro de lista html, también llamado selección múltiple, y desea generar una cadena delimitada por comas que enumere todos los valores en ese cuadro de lista, puede hacerlo con el siguiente ejemplo. La función list_to_string () js es lo único importante aquí. Puedes jugar con esta página en 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>
Puede usar array.join ('',''); para crear una lista separada por comas de una matriz.
Algo como esto, solo que mejor:
var list_to_string = function() {
var opts = document.getElementById(''list'').options;
var i = 0, len = opts.length, a = [];
for (i; i<len; i++) {
a.push(opts[i].value);
}
document.getElementById(''str'').value = a.join('','');
}
Esto también se puede hacer simplemente utilizando el Request.Form(control.UniqueID)
para extraer los valores ya delimitados por comas que ya están presentes para un cuadro de lista multiselect.