Ver Mensaje Individual
  #6 (permalink)  
Antiguo 15/08/2012, 14:08
Avatar de emprear
emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 8 meses
Puntos: 1567
Respuesta: Una comprobacion total

El problema es que stas trabajando supuestamente con un evento onkeyup sobre cada campo en particular, en ese caso, lo que tendrías que hacer es una capa (puede ser un input extra sin bordes) para mensajes de error para cada elemento

ejemplo

Código HTML:
Ver original
  1. <input type="text" id="pregunta" name="pregunta" value="" onkeyup="validar(this.id);" /> <span id="error_pregunta"></span><br />
  2. <input type="text" id="pregunta2" name="pregunta2" value="" onkeyup="validar(this.id);" /> <span id="error_pregunta2"></span><br /><br />

fijate los id de los span, con eso podés hacer dinámico la designación del elemento construyendo el id con el valor campo(que es el id) pasado a la función

Código Javascript:
Ver original
  1. document.getElementById('error_'+campo).innerHTML = 'Debe ingresar un número entero';

Cuando son forms mas complejos, con inputs de text, selects, radio, checkboxes, etc, yo prefiero esto ya pasar todos los errrores juntos

primero inicializás unas variables
Código Javascript:
Ver original
  1. var mensajes = "";
  2. var error ="";
  3.  
  4. //luego, ante cada condición (supongamos que el else es para el error)
  5.  
  6. if(....){
  7. // ok
  8. }else{
  9. error = "si";
  10. mensajes += "falta nombre...<br>"
  11. }
  12.  
  13. if(....){
  14. // ok
  15. }else{
  16. error = "si";
  17. mensajes += "falta apellido...<br>"
  18. }
  19.  
  20. if(....){
  21. // ok
  22. }else{
  23. error = "si";
  24. mensajes += "seleccione un pais<br>"
  25. }
  26.  
  27. // ante cualquier error producido la variable error ya no estaria vacia
  28. // entonces
  29.  
  30. if(error !== ""){
  31. document.getElementById('mensaje').innerHTML = mensajes;
  32. return false; // evitás el submit
  33. }
y la función de validación la llamo con
Código HTML:
Ver original
  1. <form action="x.php" onsubmit="return validar()">
olvidándome del onkeyup

Espero haberme explicado
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.