Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] evitar que InnerHTML deje en blanco a los input text

Estas en el tema de evitar que InnerHTML deje en blanco a los input text en el foro de Javascript en Foros del Web. Estoy desarrollando un formulario en el cual el usuario pueda hacer click en un botón para ingresar nuevos registros, o sea, agregar nuevos input text ...
  #1 (permalink)  
Antiguo 13/09/2013, 23:46
Avatar de asp95  
Fecha de Ingreso: septiembre-2013
Ubicación: Buenos Aires
Mensajes: 9
Antigüedad: 10 años, 7 meses
Puntos: 0
evitar que InnerHTML deje en blanco a los input text

Estoy desarrollando un formulario en el cual el usuario pueda hacer click en un botón para ingresar nuevos registros, o sea, agregar nuevos input text. Hasta ahora lo estoy haciendo así, por ej.:
Código HTML:
<div id='cont'></div>
<input type='button' value='Agregar Opción' onclick='agregar()'> 
y el javascript
Código:
function agregar(){
	var tmp = "<input type='text' class='entry'>";
	document.getElementById('cont').innerHTML+=tmp;
}
el problema de esto es que a la hora de agregar un nuevo input, el contenido que el usuario ingresó en los input's anteriores se borra y todos los campos vuelven a blanco.

Este es mi primer mensaje en este foro. Saludos y Gracias!
  #2 (permalink)  
Antiguo 14/09/2013, 04:57
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 8 meses
Puntos: 578
Respuesta: evitar que InnerHTML deje en blanco a los input text

Y no puedes añadir ese objeto con document.GetElementById('cont').appendChild(tmp); ??
  #3 (permalink)  
Antiguo 14/09/2013, 06:13
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
Puntos: 1485
Respuesta: evitar que InnerHTML deje en blanco a los input text

buenas y bienvenido...
es normal que suceda eso con innerHTML. innerHTML utiliza directamente el código html tal cual fue escrito. lo que el usuario entra en los campos, no es parte del código html. por tanto, cuando innerHTML lee el código del input, el value está vacio y por ello lo muestra vacio. para que funcione con innerHTML, tendrías que agregar lo ingresado por el usuario al atributo value. en fin, no es complicado pero es más enredado. mejor hacer como sugiere @phperos.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #4 (permalink)  
Antiguo 14/09/2013, 10:41
Avatar de asp95  
Fecha de Ingreso: septiembre-2013
Ubicación: Buenos Aires
Mensajes: 9
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: evitar que InnerHTML deje en blanco a los input text

Verdaderamente soy bastante noob con javascript y a appendChild no lo conocía. Voy a investigarlo un poco.
Si no, la propuesta de zerokilled también me parece una buena alternativa.

Muchas gracias a los 2 por la respuesta.
  #5 (permalink)  
Antiguo 14/09/2013, 11:43
Avatar de asp95  
Fecha de Ingreso: septiembre-2013
Ubicación: Buenos Aires
Mensajes: 9
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: evitar que InnerHTML deje en blanco a los input text

al final lo hice con appendChild, pero al "hijo" lo tuve que crear con createElement ya que la variable tmp directa no funcionaba.

Saludos.
  #6 (permalink)  
Antiguo 09/02/2014, 03:25
 
Fecha de Ingreso: octubre-2006
Mensajes: 2
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: evitar que InnerHTML deje en blanco a los input text

Hola ASP95!
Me pasa lo mismo que a ti y no pude resolverlo como tu si has podido.
Podrías ingresar el código entero como te quedo con el cambio realizado?
Trato de hacerlo, de agregar el createElement como tu comentaste, pero no logro hacerlo funcionar. No manejo bien javascript!
Te agradecería Muchísimo si puedes darme una mano!

Gracias!

Javier

Etiquetas: blanco, formulario, html, innerhtml, input, 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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 02:44.