Ver Mensaje Individual
  #6 (permalink)  
Antiguo 10/11/2014, 13:47
Avatar de GeekGirl
GeekGirl
 
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 10 años, 5 meses
Puntos: 44
Respuesta: Al pasar HTML mediante .innerHTML no se queda el texto

Y cuando ejecutás esa función? En el onclick del botón? Probablemente lo que pasa es que se muestra el div unas milésimas de segundo hasta que se envía el formulario (se refresca la página y tu código insertado del lado del cliente desaparece).
Acaso en la url te aparece un # cuando desaparece tu div? Si es así, es que no estás deteniendo el envío del formulario frente al error. Te aconsejo lo siguiente:

Código Javascript:
Ver original
  1. document.getElementById('idDeTuForm').onsubmit = function()
  2. {
  3. return false; // Detenes el envío del formulario
  4.  
  5. var DNI='';
  6. var NOMBRE='';
  7. var APELLIDOS='';
  8.  
  9. if (document.getElementById("dni").value == '')
  10. {
  11. DNI = ("El campo DNI no puede ser vacio");
  12. }
  13. if (document.getElementById("nombre").value == '')
  14. {
  15. NOMBRE = ("El campo nombre no puede ser vacio");
  16. }
  17. if (document.getElementById("apellidos").value == '')
  18. {
  19. APELLIDOS = ("El campo apellidos no puede ser vacio");
  20. }
  21.  
  22. alert(DNI+'\n'+APELLIDOS+'\n'+NOMBRE);
  23.  
  24. var capa = document.getElementById('div_capa');
  25. capa.innerHTML = DNI+ '<br>' +APELLIDOS+ '<br>'+NOMBRE;
  26. capa.style.border = '1px solid red';
  27.  
  28. // Solo si los 3 valores estan completos permitis el envio del mismo
  29.  
  30. if(document.getElementById("dni").value != '' && document.getElementById("nombre").value != '' &&
  31. document.getElementById("apellidos").value != '') {
  32.     return true;
  33. }
  34. }

Aclaro que el código está hecho a las apuradas y por supuesto se puede optimizar mucho. Es solamente para darte una idea de cuál es el error.
Saludos :)