Foros del Web » Programando para Internet » Javascript »

Problema con boton en formulario (se salta la validación)

Estas en el tema de Problema con boton en formulario (se salta la validación) en el foro de Javascript en Foros del Web. Tengo el siguiente codigo que funciona a la perfección, pero tengo un problema: Necesito cambiar boton de envío de Código: <input type=" button " value="Enviar" ...
  #1 (permalink)  
Antiguo 23/09/2008, 18:13
Avatar de webbeginner  
Fecha de Ingreso: noviembre-2004
Mensajes: 241
Antigüedad: 20 años, 4 meses
Puntos: 2
Problema con boton en formulario (se salta la validación)

Tengo el siguiente codigo que funciona a la perfección, pero tengo un problema:

Necesito cambiar boton de envío de

Código:
<input type="button" value="Enviar" onClick="valida_envia()">
a este otro

Código:
<input type="submit" value="Enviar" onClick="valida_envia()">
y al hacer este cambio sigue funcionando todo (aparentemente) pero solo lanza la advertencia mediante la ventana de JAVASCRIPT pero de todas formas envía el formulario a su destino


Aquí dejo mi codigo completo:


Código:
<html>
<head>
    <title>Ejemplo de validación de un formulario</title>
    
<script>
     
function validarEntero(valor){ 
      //intento convertir a entero. 
     //si era un entero no le afecta, si no lo era lo intenta convertir 
     valor = parseInt(valor) 

      //Compruebo si es un valor numérico 
      if (isNaN(valor)) { 
            //entonces (no es numero) devuelvo el valor cadena vacia 
            return "" 
      }else{ 
            //En caso contrario (Si era un número) devuelvo el valor 
            return valor 
      } 
} 

function valida_envia(){
 if (!document.fvalida.nombre.disabled) {
    //valido el nombre
    if (document.fvalida.nombre.value.length==0){
	
        alert("Tiene que escribir su nombre")
        document.fvalida.nombre.focus()
        return 0;
    }
}

    //valido la edad. tiene que ser entero mayor que 18
    edad = document.fvalida.edad.value
    edad = validarEntero(edad)
    document.fvalida.edad.value=edad
	 if (!document.fvalida.edad.disabled) {
    if (edad==""){
        alert("Tiene que introducir un número entero en su edad.")
        document.fvalida.edad.focus()
		//}
        return 0;
	
    }else{
        if (edad<18){
            alert("Debe ser mayor de 18 años.")
            document.fvalida.edad.focus()
            return 0;
        }
    }
  }
    //valido el interés
    if (document.fvalida.interes.selectedIndex==0){
        alert("Debe seleccionar un motivo de su contacto.")
        document.fvalida.interes.focus()
        return 0;
    }
    
    //el formulario se envia
    alert("Muchas gracias por enviar el formulario");
    document.fvalida.submit();
}
</script>
</head>

<body>

<form name="fvalida">
<table>
<tr>
  <td>¿Tiene Registro?</td>
  <td><p>
    <label>
      <input name="GrupoOpciones1" type="radio" id="GrupoOpciones1_0" onClick="document.getElementById('nombre').disabled=false;document.getElementById('edad').disabled=false;" value="Si"/>
      Si</label>
    <br>
    <label>
      <input name="GrupoOpciones1" type="radio" id="GrupoOpciones1_1" onClick="document.getElementById('nombre').disabled=true;document.getElementById('edad').disabled=true;" value="No"/>
      No</label>
    <br>
  </p></td>
</tr>
<tr>

    <td>Nombre: </td>
    <td><input type="text" name="nombre" size="30" maxlength="100" id= "nombre" ></td>
</tr>
<tr>
    <td>Edad:</td>
    <td><input type="text" name="edad" size="3" maxlength="2" id="edad" ></td>
</tr>
<tr>
    <td>Interés:</td>

    <td>
    <select name=interes>
    <option value="Elegir">Elegir
    <option value="Comercial">Contacto comercial
    <option value="Clientes">Atención al cliente
    <option value="Proveedores">Contacto de proveedores
    </select>    </td>
</tr>
<tr>
    <td colspan="2" align="center">
<input type="button" value="Enviar" onClick="valida_envia()">
</td>
</tr>
</table>

</form>




</body>
</html>
Gracias !
__________________
************************
"La bondad es simple; la maldad, múltiple"
  #2 (permalink)  
Antiguo 23/09/2008, 19:10
Avatar de ugmaster  
Fecha de Ingreso: abril-2008
Ubicación: Veracruz, México
Mensajes: 73
Antigüedad: 16 años, 11 meses
Puntos: 1
Sonrisa Respuesta: Problema con boton en formulario (se salta la validación)

Esta vez.. si me quede con cara de What... no entendi que quieres hacer.. si me explicas mejor pos podre ver que podemos hacer...

Saludos
__________________
"Lo que aun no existe... es porque el ser humano aún no lo ah imaginado..."
  #3 (permalink)  
Antiguo 23/09/2008, 21:15
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 10 meses
Puntos: 839
De acuerdo Respuesta: Problema con boton en formulario (se salta la validación)

Debes poner "return valida_envia()" ya que así, si la función devuelve Falso se cancelará la acción del click. Es más común usar eso en el onsubmit del fomulario que en el onclick del botón input (aunque en algunos casos se hace en el onclick).
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #4 (permalink)  
Antiguo 24/09/2008, 10:14
Avatar de webbeginner  
Fecha de Ingreso: noviembre-2004
Mensajes: 241
Antigüedad: 20 años, 4 meses
Puntos: 2
Respuesta: Problema con boton en formulario (se salta la validación)

Cita:
Iniciado por ugmaster Ver Mensaje
Esta vez.. si me quede con cara de What... no entendi que quieres hacer.. si me explicas mejor pos podre ver que podemos hacer...
Hola ugmaster
Es que cuando uso SUBMIT en lugar de button en el boton del formulario, salen las advertencias de javascript pero el form es enviado y si le dejo en "button" funciona muy bien, pero .. necesito cambiarlo


Cita:
Iniciado por David el Grande Ver Mensaje
Debes poner "return valida_envia()" ya que así, si la función devuelve Falso se cancelará la acción del click. Es más común usar eso en el onsubmit del fomulario que en el onclick del botón input (aunque en algunos casos se hace en el onclick).
Hola David el Grande

Lo puse de esta forma:
<input type="submit" value="Enviar" onClick="return valida_envia()">

Pero lo sigue enviando
__________________
************************
"La bondad es simple; la maldad, múltiple"
  #5 (permalink)  
Antiguo 24/09/2008, 10:16
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 10 meses
Puntos: 839
Exclamación Respuesta: Problema con boton en formulario (se salta la validación)

Es que ahí ya tienes un grave error de sintaxis debe ser:
Código html:
Ver original
  1. <input type="submit" value="Enviar" onclick="return valida_envia()">
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #6 (permalink)  
Antiguo 24/09/2008, 10:56
Avatar de webbeginner  
Fecha de Ingreso: noviembre-2004
Mensajes: 241
Antigüedad: 20 años, 4 meses
Puntos: 2
Respuesta: Problema con boton en formulario (se salta la validación)

Así como lo tienes es tal como lo puse, si pruebas mi codigo, verás que sigue enviando la info.

Lo había escrito mal pero lo corregi inmediatamente (tal vez te llegó el aviso cuando lo escribi mal)

bueno, pero el detalle es que sigue enviando la info
__________________
************************
"La bondad es simple; la maldad, múltiple"
  #7 (permalink)  
Antiguo 24/09/2008, 16:36
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 10 meses
Puntos: 839
Exclamación Respuesta: Problema con boton en formulario (se salta la validación)

No uses return 0, usa return false.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 24/09/2008, 17:12
Avatar de webbeginner  
Fecha de Ingreso: noviembre-2004
Mensajes: 241
Antigüedad: 20 años, 4 meses
Puntos: 2
Respuesta: Problema con boton en formulario (se salta la validación)

Gracias David !!!
__________________
************************
"La bondad es simple; la maldad, múltiple"
  #9 (permalink)  
Antiguo 29/09/2008, 18:41
Avatar de ugmaster  
Fecha de Ingreso: abril-2008
Ubicación: Veracruz, México
Mensajes: 73
Antigüedad: 16 años, 11 meses
Puntos: 1
Respuesta: Problema con boton en formulario (se salta la validación)

Bueno creo que David ya ah respondido a tu pregunta..

Saludos.
__________________
"Lo que aun no existe... es porque el ser humano aún no lo ah imaginado..."
  #10 (permalink)  
Antiguo 29/09/2008, 22:27
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 11 meses
Puntos: 1284
Respuesta: Problema con boton en formulario (se salta la validación)

Hola:

No sé porqué no funciona con el evento submit del formulario... tal vez se produzca algún error, pero lo correcto es un botón submit sin más y en el tag form onsybmit="validar(this)"... lo del this es para pasar el mismo formulario como parámetro, para simplificar el código.

En este artículo: El abc de los formularios hay información sobre validaciones.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 13:12.