Foros del Web » Programando para Internet » Javascript »

Error al ocultar y mostrar un form

Estas en el tema de Error al ocultar y mostrar un form en el foro de Javascript en Foros del Web. Hola buenas tardes mi error es el sigiente, tengo una funcion que oculta un div y pone en un form la informacion para editarla y ...
  #1 (permalink)  
Antiguo 17/05/2010, 11:26
Avatar de djsos  
Fecha de Ingreso: septiembre-2007
Ubicación: Madrid-España
Mensajes: 374
Antigüedad: 17 años, 2 meses
Puntos: 14
Exclamación Error al ocultar y mostrar un form

Hola buenas tardes mi error es el sigiente, tengo una funcion que oculta un div y pone en un form la informacion para editarla y luego deberia de hacer lo inverso pero no lo hace, directamente no muestra nada.

Mi codigo
Código HTML:
Ver original
  1. <div id="nombre_mod" onclick="mostrarForm(this.id)">$AE_mod[nombre]</div><input type="hidden" id="f_nombre_mod" value=""/>

Código Javascript:
Ver original
  1. var id_abierto = null;
  2. function mostrarForm(id){
  3.     fin();
  4.     var form = 'f_'+id;
  5.     document.getElementById(form).value = document.getElementById(id).innerHTML;
  6.     document.getElementById(id).innerHTML = "";
  7.     document.getElementById(form).type = "text";
  8.     id_abierto = id;
  9. }
  10.  
  11. function ocultaForm(){
  12.     if(!id_abierto){
  13.         return;
  14.     }
  15.     var formold = "f_"+id_abierto ;
  16.  
  17.     FormOld = document.getElementById(formold);
  18.     if(FormOld.value = ""){
  19.         alert("No puede estar en blanco");
  20.         return;
  21.     }
  22.     document.getElementById(id_abierto).innerHTML = FormOld.value;
  23.     FormOld.Value = "";
  24.     FormOld.type = "hidden";
  25.     id_abierto = null;
  26. }
  27. function fin(){
  28.     ocultaForm();
  29.     removeEditor();
  30. }

Haber si algien me alluda porque en firefox no funciona bien y en internet explorer directamente me dice que no reconoce el parametro .type .

Bueno muchas gracias
__________________
Es de bien nacidos ser agradecidos.
Desarrollo de software a medida | TPV Comercios
  #2 (permalink)  
Antiguo 17/05/2010, 11:43
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: Error al ocultar y mostrar un form

Hola

En cuanto que ie no reconoce type, usar setAttribute"type",...)
En la variable id_abierto, prueba a usar un boleano

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 17/05/2010, 11:49
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 7 meses
Puntos: 1485
Respuesta: Error al ocultar y mostrar un form

primero aclarar que no he comprobado tu codigo, solamente lo he leido y analizado. en base a eso:
  • para realizar la operacion inversa tienes que invocar la funcion ocultaForm desde el evento onblur en el INPUT.
  • en la linea 18 asumo que quisistes comparar igualdad (==) en lugar de asignar (=).
  • en iexplorer no puedes cambiar el tipo de un elemento INPUT. ¡una gran pena! para lograr algo similar tendrias que crear un nuevo elemento INPUT y declarar el tipo antes de agregarlo al documento.
sin embargo, ¿cual es la idea de tener un campo oculto y mostrar su contenido en otra etiqueta? sospecho que es para controlar la apariencia. si es el caso, tu puedes darle la apariencia de un elemento normal (sin borde, fondo y otras cosas) a un INPUT text. luego, cuando reciba el foco cambias la clase del INPUT para que tenga la apariencia comun de un INPUT text. asi te evitas el rollo que te inventastes.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #4 (permalink)  
Antiguo 17/05/2010, 12:02
Avatar de djsos  
Fecha de Ingreso: septiembre-2007
Ubicación: Madrid-España
Mensajes: 374
Antigüedad: 17 años, 2 meses
Puntos: 14
Respuesta: Error al ocultar y mostrar un form

la idea es para modificar el nombre del modulo es decir yo tengo una pag donde me muestra el nombre descripcion etc datos en general de un modulo en este caso; si quiero cambiar alguno de ellos haces click y se te pone el input y cuando haces doble click se te cierra y te muestra el dato modificado otra vez en el div luego con otro boton y funcion guardo los datos.

Podrias explicarme si esto que he dicho se puede hacer como me comentabas zerokilled en tu ultimo parrafo.

Gracias
__________________
Es de bien nacidos ser agradecidos.
Desarrollo de software a medida | TPV Comercios
  #5 (permalink)  
Antiguo 18/05/2010, 05:44
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: Error al ocultar y mostrar un form

Hola

Cita:
Iniciado por zerokilled Ver Mensaje
  • en iexplorer no puedes cambiar el tipo de un elemento INPUT. ¡una gran pena! para lograr algo similar tendrias que crear un nuevo elemento INPUT y declarar el tipo antes de agregarlo al documento.
Ahh mira, no lo sabía

Prueba a usar DOM

Código Javascript:
Ver original
  1. function mostrarForm(id){
  2.     document.getElementById('f_'+id).value = document.getElementById(id).innerHTML;
  3.     document.getElementById('f_'+id).style.display = "block";
  4. }
  5.  
  6.  
  7. function ocultaForm(id){
  8. document.getElementById(id.split('_')[1]+'_'+id.split('_')[2]).innerHTML = document.getElementById(id).value;
  9. document.getElementById(id).style.display = "none";
  10. }

Código HTML:
Ver original
  1. <div id="nombre_mod" onclick="mostrarForm(this.id);">Nombre del modulo</div><input type="text" id="f_nombre_mod" style="display:none;" value="" onblur="ocultaForm(this.id);" />

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;" />

Etiquetas: formulario
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:27.