Foros del Web » Programando para Internet » Javascript »

ayuda función js

Estas en el tema de ayuda función js en el foro de Javascript en Foros del Web. Buenas compañeros, estoy realizando un formulario utilizando javascript pero no logro que este funcione correctamente. Tengo un div ( no es mas que un rectangulo ...
  #1 (permalink)  
Antiguo 20/09/2009, 10:54
 
Fecha de Ingreso: mayo-2008
Ubicación: Barcelona
Mensajes: 249
Antigüedad: 16 años, 8 meses
Puntos: 1
ayuda función js

Buenas compañeros,

estoy realizando un formulario utilizando javascript pero no logro que este funcione correctamente. Tengo un div ( no es mas que un rectangulo de color rojo)
donde quiero que cuando alguien haga click aparezca un SELECT. Donde el usuario pueda poner su provincia. Una vez el usuario salga del select , la opción elegida ( Barcelona, Madrid, Valencia.... ) debería quedarse en el div como texto .

El primer paso, el de generar el SELECT, lo he realizado con exito:

Cita:
<div id="segona" onclick="creaSelect(this.id,'input_titu')">(Haz click aquí para intrducir tu provincia)</div>
Cita:
function creaSelect(idDiv,idInput)

{
if(!mostrandoInput)

{
var divContenedor=document.getElementById(idDiv);

divContenedor.innerHTML="<select onBlur='cargaDatos(\""+idDiv+"\", \""+idInput+"\")'><option>barcelona</option><option>Madrid</option><option>barcelona</option><option>Girona</option></select>";

document.getElementById(idInput).focus();
mostrandoInput=true;


}

else{}

}
Sin embargo el segundo paso, el que debe pasar la opción del select a texto plano en el div no se por que no funciona. Se genera de manera correcta el select pero cuando intentas salir del foco del select no se carga como texto


pongo la función js

Cita:
function cargaDatos(idDiv, idInput)


{
var valorInput=document.getElementById(idInput).value;
mostrandoInput=false;
document.getElementById(idDiv).innerHTML=valorInpu t;


}
A ver si alguien sabe cual es el error que cometo

Un saludo
  #2 (permalink)  
Antiguo 21/09/2009, 05:30
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años
Puntos: 126
Respuesta: ayuda función js

Hola

A simple vista las opciones del combo que creas no tienen valores.

Por otro lado estos dos argumentos cargaDatos(\""+idDiv+"\", \""+idInput+" son
segona e input_titu o lo que es lo mismo a función cargarDatos no le estás pasando el valor de la opción seleccionada

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 21/09/2009, 05:49
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 9 meses
Puntos: 574
Respuesta: ayuda función js

Adler tiene toda la razon si no pones valores a las options no podrás recuperarlos....

Cambio de estrategia, si no lo entiendes pregunta...

Código html:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <title>Documento sin t&iacute;tulo</title>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  4. <script language="JavaScript" type="text/JavaScript">
  5. function mostraSelect(obj){
  6.     document.getElementById(obj.id + "sel").style.display="block";
  7.     document.getElementById(obj.id).style.display="none";
  8. }
  9.  
  10. function cargaDatos(idDiv, obj, idSigienteImput){
  11.     var valorInput=obj.value;
  12.     if (valorInput!="0"){
  13.         document.getElementById(idDiv).innerHTML=valorInput;
  14.         document.getElementById(idDiv + "sel").style.display="none";
  15.         document.getElementById(idDiv).style.display="block";
  16.         document.getElementById(idSigienteImput).focus();
  17.     }else{
  18.         document.getElementById(idDiv).innerHTML="(Haz click aquí para intrducir tu provincia)";
  19.         document.getElementById(idDiv + "sel").style.display="none";
  20.         document.getElementById(idDiv).style.display="block";
  21.         document.getElementById(idSigienteImput).focus();
  22.     }
  23. }
  24.  
  25.  
  26. </head>
  27.  
  28. <div id="segona" style="display:block" onClick="mostraSelect(this)">(Haz click aquí para intrducir tu provincia)</div>
  29. <div id="segonasel" style="display:none">
  30. <select onChange="cargaDatos('segona', this, 'input_titu')" id="provincies">
  31.     <option value="0">&nbsp;</option>
  32.     <option value="Barcelona">Barcelona</option>
  33.     <option value="Madrid">Madrid</option>
  34.     <option value="Lleida">Lleida</option>
  35.     <option value="Girona">Girona</option>
  36. </select></div>
  37. <input name="input_titu" type="text" id="input_titu">
  38. </body>
  39. </html>

Quim

Última edición por quimfv; 21/09/2009 a las 05:57
  #4 (permalink)  
Antiguo 22/09/2009, 09:27
 
Fecha de Ingreso: mayo-2008
Ubicación: Barcelona
Mensajes: 249
Antigüedad: 16 años, 8 meses
Puntos: 1
Respuesta: ayuda función js

Gràcias a los dos, la verdad es que he utilizado el cambio de estrategia que decía Quim y me ha funcionado al 100% y además creo que es más límpio.

Gracias por todo

Un saludo

Marc
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 19:22.