Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/08/2012, 10:15
GUILLHERMOSOFT
 
Fecha de Ingreso: marzo-2009
Ubicación: Cali (Valle) - Colombia
Mensajes: 164
Antigüedad: 15 años, 9 meses
Puntos: 2
De acuerdo Condicionar Validación JQuery Validate en Formulario Dinámico

Cordial Saludo

Necesitaba hacer una pequeña consulta, lo que sucede es que estoy validando un formulario dinámico (al cual agrego y quito "bloques" de campos con un botón "Agregar" y "Quitar" los cuales llaman funciones con appenTo y remove) y estoy usando JQuery Validate, más hay un campo que necesito que quede como obligatorio únicamente dependiendo del valor de otro campo (si está vacío ó no), para lo cual he intentado con las siguientes condiciones:

Condición 1:
Código:
"segundoCampo[]": {
	required: function(element) {
		return $("#primerCampo").val() == "";
	}
}
Condición 2:

Código:
"segundoCampo[]": {
	required: function(element) {
		return $(".primerCampo").val() == "";
	}
}
Condición 3:

Código:
"segundoCampo[]": {
	required: function(element) {
		return $(this).parent().parent().find(".primerCampo").val() == "";//El primer parent lo uso para acceder al td donde está el campo  "segundoCampo[]", el segundo parent, para acceder al tr que contiene a los dos campos
	}
}
Esto le he hecho basado en http://docs.jquery.com/Plugins/Valid...dency-callback, lo cual me ha funcionado sin problema para formularios de tipo estático y dinámicos para todas las demás validaciones, sin tener que usar live, ni delegate.

Conceptualmente pienso que:

La condición 1 está 100% mal, ya que el contenido es dinámico y no deberia usar selectores por id, ya que estos no se deben repetir en sus valores y es claro que aquí se repiten.

La condición 2 no está del todo mal, pero al referirme a una clase, se van a tener en cuenta TODOS los campos con esa clase, no únicamente el del "bloque" actual en el que se están escribiendo los datos.

La condición 3 es la única que más ó menos considero "viable" (sino que no encuentro aún la forma de escribirla correctamente), sin embargo no me es del todo claro si por medio de ese "this" estoy accediendo al campo "segundoCampo[]" (lo cual pienso que no es así) ó al formulario como tal (lo cual considero que si es más probable), ya que al momento de llamar el método "validate" se selecciona es el formulario.

Les agradecería si por favor pueden mirar el código y hacer sus observaciones.

De antemano muchas gracias por su ayuda y su tiempo.

Última edición por GUILLHERMOSOFT; 03/08/2012 a las 10:21