2009-07-07 17 views
6

Estoy usando JQuery Validation. Ahora quiero que se invoquen mis reglas solo cuando se cumple cierta condición, es decir, quiero $("#AppSelectField").is(':hidden') para devolver false, solo entonces invoco las reglas.Validación de la regla condicional en JQuery

Mis reglas es la siguiente:

$(function() { 
    $("#RequestLock").validate({ 
     rules: { 
     FloorNum:{ 
     required: true, 
     digits: true 
     }, 


    }, 
    message: { 
    FloorNum: "The floor number must be integer", 

}, 

}); 
}); 

Cómo modificar la sección anterior para satisfacer mis necesidades? Nota: no quiero escribir mi propio método personalizado para required y digits.

Respuesta

16

Esto debe hacerlo:

$(function() { 
    var checkIfFieldVisible = function() { 
     return !$("#AppSelectField").is(':hidden'); 
    }; 

    $("#RequestLock").validate({ 
     rules: { 
      FloorNum: { 
       required: { depends: checkIfFieldVisible }, 
       digits: { depends: checkIfFieldVisible } 
      }, // <-- EXTRA COMMA 
     }, 
     message: { 
      FloorNum: "The floor number must be integer", 
     }, // <-- EXTRA COMMA 
    }); 
}); 

(I marcó algunos comas extra que tiene en su código, ya que hará que IE estrangulador)

+0

Podemos validar/no validar formulario completo basado en cierta ¿valores?. Por ejemplo, tengo un formulario anidado con los botones guardar/enviar. Quiero validar solo en Enviar. Mi problema es cuando tengo la clase = "requerida" en cada campo, ya que el formulario es muy dinámico. Por favor ayuda. – Aanu

+1

Ni siquiera necesitas la función, solo puedes configurar 'depends = '#AppSelectField: visible'' – forivall

Cuestiones relacionadas