Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/09/2008, 18:13
Avatar de webbeginner
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"