Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/09/2008, 15:22
Avatar de webbeginner
webbeginner
 
Fecha de Ingreso: noviembre-2004
Mensajes: 241
Antigüedad: 20 años, 4 meses
Puntos: 2
Como modificar una validación en un form dependiendo si el elemento esta habilitado

Buen día

Tengo un código en el que tengo ciertos campos que son obligatorios, el detalle aqui es que algunos de estos campos quiero que sean obligatorios SOLO EN EL CASO DE QUE NO estén DESHABILITADOS.

Mas a detalle de mi problema

En el siguiente código tengo un campo nombre y un campo edad que deben ser obligatorios solo en el caso de que seleccionen la opción SI del RadioButton GrupoOpciones1. Actualmente tiene una validación que pide llenar los campos NOMBRE y EDAD en todos los casos, cuando se selecciona NO en el RadioButton GrupoOpciones1 se deshabilitan los mencionados campos (NOMBRE y EDAD ) pero el mi validación en JAVASCRIPT me sigue pidiendo llenar esos campos.

Espero haya explicado bien la problematica

Gracias !!

Código:

Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<
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(){
    
//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 (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 type="radio" name="GrupoOpciones1" value="Si" id="GrupoOpciones1_0" onClick="document.getElementById('nombre').disabled=false;document.getElementById('edad').disabled=false;"/>
      Si</label>
    <br>
    <label>
      <input type="radio" name="GrupoOpciones1" value="No" id="GrupoOpciones1_1" onClick="document.getElementById('nombre').disabled=true;document.getElementById('edad').disabled=true;"/>
      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> 
__________________
************************
"La bondad es simple; la maldad, múltiple"