Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Cambiar nombre de opciones en select

Estas en el tema de Cambiar nombre de opciones en select en el foro de Javascript en Foros del Web. Hola. Tengo este script para popular un campo de selección en función de una selección previa, en este caso las provincias de España en función ...
  #1 (permalink)  
Antiguo 13/11/2016, 15:10
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Cambiar nombre de opciones en select

Hola.

Tengo este script para popular un campo de selección en función de una selección previa, en este caso las provincias de España en función de la selección de España como país:

Código:
var countryLists = new Array(24) 
 countryLists["0"]= ["A Coruña", "Álava", "Albacete", "Alicante", "Almería", "Asturias", "Ávila", "Badajoz", "Baleares", "Barcelona", "Burgos", "Cáceres", "Cádiz", "Cantabria", "Castellón", "Ciudad Real", "Córdoba", "Cuenca", "Girona", "Granada", "Guadalajara", "Gipuzkoa", "Huelva", "Huesca", "Jaén", "La Rioja", "Las Palmas", "León", "Lérida", "Lugo", "Madrid", "Málaga", "Murcia", "Navarra", "Orense", "Palencia", "Pontevedra", "Salamanca", "Segovia", "Sevilla", "Soria", "Tarragona", "Santa Cruz de Tenerife", "Teruel", "Toledo", "Valencia", "Valladolid", "Vizcaya", "Zamora", "Zaragoza"]; 


 function countryChange(selectObj) { 
 var idx = selectObj.selectedIndex; 
 var which = selectObj.options[idx].value; 
 cList = countryLists[which]; 
 var cSelect = document.getElementById("select2"); 
 var len=cSelect.options.length; 
 while (cSelect.options.length > 0) { 
 cSelect.remove(0); 
 } 
 var newOption; 
 for (var i=0; i<cList.length; i++) { 
 newOption = document.createElement("option"); 
 newOption.value = cList[i]; 
 newOption.text=cList[i]; 
 try { 
 cSelect.add(newOption);  
 } 
 catch (e) { 
 cSelect.appendChild(newOption); 
 } 
 } 
 }
Funciona perfectamente, generando este listado de opciones en el select2:

Código:
<option value="A Coruña">A Coruña</option>
<option value="Álava">Álava</option>
<option value="Albacete">Albacete</option>
...
...
...
Correctamente, pero veo que, por una cuestión interna de mi sitio web, el value y el nombre de la opción en sí no pueden ser el mismo, sino que debe de quedar así:

Código:
<option value="0">A Coruña</option>
<option value="1">Álava</option>
<option value="2">Albacete</option>
...
...
...
Estoy intentando modificar el newOption.text en base a la configuración que arriba indicada, pero sin demasiado éxito. Si es que es posible. O quizás dejándolo así y luego reemplazando el texto de la opción.

¿Qué os parece?

Gracias.
  #2 (permalink)  
Antiguo 13/11/2016, 15:43
 
Fecha de Ingreso: noviembre-2015
Mensajes: 231
Antigüedad: 8 años, 5 meses
Puntos: 86
Respuesta: Cambiar nombre de opciones en select

Se trata de tomar el indice del elemento de tal modo que en lugar de
Código Javascript:
Ver original
  1. newOption.value = cList[i];
será
Código Javascript:
Ver original
  1. newOption.value = i;
  #3 (permalink)  
Antiguo 13/11/2016, 15:47
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Respuesta: Cambiar nombre de opciones en select

Solucionado.

Gracias.

Etiquetas: funcion, nombre, opciones, select, text
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:36.