Foros del Web » Programando para Internet » Jquery »

Condicionar Validación JQuery Validate en Formulario Dinámico

Estas en el tema de Condicionar Validación JQuery Validate en Formulario Dinámico en el foro de Jquery en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 03/08/2012, 10:15
 
Fecha de Ingreso: marzo-2009
Ubicación: Cali (Valle) - Colombia
Mensajes: 164
Antigüedad: 15 años, 8 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
  #2 (permalink)  
Antiguo 08/08/2012, 10:25
 
Fecha de Ingreso: marzo-2009
Ubicación: Cali (Valle) - Colombia
Mensajes: 164
Antigüedad: 15 años, 8 meses
Puntos: 2
De acuerdo Respuesta: Condicionar Validación JQuery Validate en Formulario Dinámico

Me "autorespondo", pues ya lo solucioné y quizás a alguien le sea útil, quedó así:

Código:
var resultado;

$.validator.addMethod("primerCampo", function(value, element) {
        var segundoCampo = $(element).parent().parent().find(".segundoCampo").val();
        if(value == "" && segundoCampo == ""){
            resultado = false;
        } else {
            resultado = true;
        }
        return resultado;
}, "Digite un valor en el primer campo ó en el segundo campo");
Donde "primerCampo" es la clase del primer campo.

Etiquetas: condicionar, formulario, funcion, validar, validar
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 16:12.