Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/01/2009, 04:47
farve
 
Fecha de Ingreso: marzo-2005
Mensajes: 130
Antigüedad: 20 años
Puntos: 1
Select Relacionados con value distinto al texto mostrado(del Array)

Hola

Estoy haciendo un formulario con unos select relacionados y e mirado esta web:
http://www.programacionweb.net/artic...iculo/?num=269

y el codigo que dan es este:

Código:
<script languaje="JavaScript">
<!--
provincias = new Array();
provincias[0] = new Array();
provincias[1] = new Array('Almería','Cádiz','Córdoba','Granada','Huelva','Jaén','Málaga','Sevilla');
provincias[2] = new Array('Huesca','Teruel','Zaragoza');
provincias[3] = new Array('Asturias');
provincias[4] = new Array('Baleares');
function cambiar(formulario){
  var i = 0;
  var select1 = formulario['D1'];
  var select2 = formulario['D2'];
  var vector = provincias[select1.selectedIndex];
  if(vector.length)select2.length=vector.length;
  while(vector[i]){
    select2.options[i].value = vector[i];
    select2.options[i].text = vector[i];
    i++;
  }
  select2.options[0].selected = 1;
}
-->
</script>

<form method="POST">
  <select name="D1" onchange="cambiar(this.form)">
  <option>-</option>
  <option>Andalucía</option>
  <option>Aragón</option>
  <option>Asturias</option>
  <option>Baleares</option>
  </select>
  <select name="D2">
  <option>-</option>
  </select></p>
</form>
El problema que le veo es que el value del segundo select tiene que ser el texto que se muestra, el que escribes en el Array.

Por ejemplo si quieres que se muestre "Huesca", pero que te envie el valor (value) "20". Como se haria???

Si añado todas las posibilidades en el 2º select, con sus values, no se podria cojer ese valor?

me imagino que la "cosa" esta aqui:
Código:
var vector = provincias[select1.selectedIndex];
  if(vector.length)select2.length=vector.length;
  while(vector[i]){
    select2.options[i].value = vector[i];
    select2.options[i].text = vector[i];
    i++;
  }
Saludos.

Última edición por farve; 19/01/2009 a las 02:29