Tengo un formulario con varios campos que estoy validando (algunos con métodos agregados para la validación personalizada) con el excelente complemento jQuery Validation de Jörn Zaeffere. ¿Cómo elude la validación con los controles de envío especificados (en otras palabras, la validación de incendios con algunas entradas de envío, pero no activa la validación con otros)? Esto sería similar a ValidationGroups con controles de validador ASP.NET estándar.jQuery Validation plugin: deshabilitar la validación para los botones de envío especificados
Mi situación:
Es con ASP.NET Web Forms, pero se puede ignorar que, si lo desea. Sin embargo, estoy usando la validación más como una "recomendación": en otras palabras, cuando se envía el formulario, la validación se dispara pero en lugar de mostrar un mensaje "requerido", aparece una "recomendación" que dice algo en la línea de "usted" echó de menos los siguientes campos ... ¿quieres continuar de todos modos? " En ese punto en el contenedor de error hay otro botón de envío ahora visible que se puede presionar, lo que ignoraría la validación y se enviaría de todos modos. ¿Cómo eludir los formularios .validate() para este control de botón y todavía publicar?
La muestra Comprar y vender una casa en http://jquery.bassistance.de/validate/demo/multipart/ permite esto para golpear los enlaces anteriores, pero lo hace creando métodos personalizados y agregándolo al validador. Preferiría no tener que crear métodos personalizados para duplicar la funcionalidad que ya está en el complemento de validación.
La siguiente es una versión abreviada de la secuencia de comandos de aplicación inmediata que tengo en este momento:
var container = $("#<%= Form.ClientID %> div.validationSuggestion");
$('#<%= Form.ClientID %>').validate({
errorContainer: container,
errorLabelContainer: $("ul",container),
rules: {
<%= YesNo.UniqueID %>: { required: true },
<%= ShortText.UniqueID %>: { required: true } // etc.
},
messages: {
<%= YesNo.UniqueID %>: 'A message.',
<%= ShortText.UniqueID %>: 'Another message.' // etc.
},
highlight: function(element, errorClass) {
$(element).addClass(errorClass);
$(element.form).find("label[for=" + element.id + "]").addClass(errorClass);
$(element.form).find("label[for=" + element.id + "]").removeClass("valid");
},
unhighlight: function(element, errorClass) {
$(element).removeClass(errorClass);
$(element.form).find("label[for=" + element.id + "]").removeClass(errorClass);
$(element.form).find("label[for=" + element.id + "]").addClass("valid");
},
wrapper: 'li'
});
también especificar la palabra clave en el botón de retorno, por lo que no va a navegar lejos http://technote.in/TechNote/Forums/AspnetReply.aspx?post_id=134 –