Ver Mensaje Individual
  #6 (permalink)  
Antiguo 13/01/2013, 13:13
Avatar de emprear
emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: LLamar dos funciones con onsubmit ??

Cita:
Iniciado por cristo995 Ver Mensaje
o. si me sirvio retornando true.
gracias: carlos_belisario funciona 100% :) :)

ya me estaba desesperando.

pero entonces la parte de return true;

es como si fuera la parte contraria del codigo cierto..?

o esq de alguna u otra forma va return true; ??
no me queda muy claro...
Te pongo una variante
Código Javascript:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2.     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5.  
  6. <script type="text/javascript">
  7. //<![CDATA[
  8.  
  9. function Validar_CampoVacio(){
  10. var mensaje = "";
  11. var mensaje_tel = "";
  12. var params = Validar_CampoVacio.arguments;
  13.     for (var i = 0; i < params.length; i++){
  14.         if(document.getElementById(params[i]).value == ""){
  15.         mensaje += "Debe rellenar el campo " + (params[i]) + "\n\r";
  16.         }
  17.     }
  18.    
  19.     var campoTel = document.getElementById('telefono');
  20.     if(!validarNumero(campoTel.value)){
  21.         if(campoTel.value != ""){
  22.         mensaje_tel += "Telefono debe ser un número";
  23.         }
  24.     }
  25.  
  26. // para sacar todos los mensajes juntos
  27.     if((mensaje != "")||(mensaje_tel != "")){
  28.     alert(mensaje + mensaje_tel);
  29.     return false; // recién aqui devolvés false
  30.     }
  31. }
  32.  
  33. function validarNumero(input){
  34. return (!isNaN(input)&&parseInt(input)==input);
  35. }  
  36. //]]>
  37. </script>
  38. <title></title>
  39. </head>
  40. <body>
  41. <form name="prueba" action="test.php" onsubmit="return Validar_CampoVacio('nombre', 'apellido','telefono')" id="prueba">
  42. Nombre:<input type="text" name="nombre" id='nombre' value="" /><br />
  43. <br />
  44. Apellido:<input type="text" name="apellido" id="apellido" value="" /><br />
  45. <br />
  46. Telefono:<input type="text" name="telefono" id="telefono" value="" /><br />
  47. <br />
  48. <button type="submit">enviar formulario</button></form>
  49. </body>
  50. </html>

Primero un par de correciones sobre tu código original, en
getElementById('telefono).value falta el cierre de la comilla en teléfono
ya que le puiste id a nombre y telef, ponéselo a apellido

Cuando llamás una función con return, el evento espera una respuesta de dicha función, en el caso del onsubmit (que implica justamente eso, hacer un submit, y el button dentro de un form efectivamente los hace), de no recibir un false, la acción del submit sigue su curso natural y dirije al action (que digamos, tampoco fué definido en el form).
Luego podés sacar un mensaje individualmente, o, generar un mensaje en el error y posteriormente evaluar si el mensaje no es = ""; y sacar el mensaje de error trás hacer todas las validaciones (que incluso podrían ser más)
Otro detalle, en lo propuesto pos Carlos, un simple isNaN() te daría como falso tanto para un entero como para un float, pero intuyo que por ser un telefono solo querés enteros, de ahi que yo usé otra función para evaluar eso.
Finalmente, deberías mejorar la validación de campos vacios, ya que una sucesión de espacios en blanco con la barra espaciadora no es una cadena vacía precisamente.
Hay otras variantes, pero esta que puse es lo que m´´as se asemeja a la que hiciste.
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.