validation - validacion - jquery validate español
jQuery deshabilita la validación de reglas en un solo campo (4)
Lo pasé mejor con $(''.multiselect'').rules(''remove'');
en mi caso, por el motivo que sea, agregar .cancel
o .data-val-ignore
a los $.validator.setDefaults
y $(''.multiselect'')
no lo solucionó.
También intenté
$(''select[multiple][data-val]'').removeAttr(''data-val'').removeAttr(''data-val-number'').addClass(''data-val-ignore'').validate({ ignore: "[multiple]" });
$.validator.setDefaults({ ignore: ":hidden,:disabled,.data-val-ignore" });
$(''.multiselect'').closest(''form'').data(''validator'').settings.ignore = ":hidden,:disabled,.data-val-ignore, .data-val-ignore *";
$(''.multiselect'').data(''validator'').settings.ignore = "[multiselect]"
cada uno de esos ... y combinaciones de ellos
mi jquery.validate.js
era
/*! jQuery Validation Plugin - v1.11.0 - 2/4/2013
* https://github.com/jzaefferer/jquery-validation
* Copyright (c) 2013 Jörn Zaefferer; Licensed MIT */
jquery era
jQuery JavaScript Library v1.9.1 - Fecha: 2013-2-4
Estoy usando MVC para crear formularios que se generan en tiempo de ejecución. Para la validación, estoy probando la biblioteca de validación de jQuery que es muy conveniente de usar. Tengo la expresión de validación de cada campo en el atributo cdata de la etiqueta
<input type="text" name="xyz" id="xyz" class="defaultTextBox"
cdata="{validate:{required:true, decimal:true, messages:
{required:''Please enter an decimal value'',
decimal:''Please enter a valid decimal''}}}">
Esto funciona maravillosamente. Ahora, un requisito más que tengo es que algunos campos se muestran y ocultan de acuerdo con la lógica en la página y necesito deshabilitar la validación en los campos ocultos para que no interfieran con el envío del formulario. Simplemente alternar lo requerido: verdadero a falso y de nuevo a verdadero debería ser suficiente. Solo que no sé cómo.
Alguien tiene alguna experiencia con eso?
Si está utilizando la validación JQuery de ASP.NET MVC Unobtrusive, debe establecer la configuración de esta manera. Esto se debe a la forma en que Microsoft realmente llama a jQuery para validar. Esto debería ser seguro hacerlo dentro de un método ready
.
Editar: Por favor, vea el comentario de Cory a continuación antes de copiar pegar esto. Este es mi código original
$("form").data("validator").settings.ignore = ".data-val-ignore, :hidden, :disabled";
Luego solo aplico la clase .data-val-ignore
a cosas que no validar.
Tenga en cuenta que probablemente desee agregar :hidden
que en realidad es el comportamiento predeterminado de ignorar definido en jquery.validate.js
. Me gusta agregar :disabled
también.
$.extend($.validator, {
defaults: {
messages: {},
groups: {},
rules: {},
errorClass: "error",
validClass: "valid",
errorElement: "label",
focusInvalid: true,
errorContainer: $([]),
errorLabelContainer: $([]),
onsubmit: true,
ignore: ":hidden", // default for ignore in jquery.validate.js
ignoreTitle: false,
onfocusin: function( element, event ) {
this.lastActive = element;
Y finalmente puede querer darle un estilo, especialmente útil durante la depuración.
.data-val-ignore
{
background: #eee;
}
Siguiendo la respuesta de Gabe, también puede establecer el valor de ignorar como predeterminado, por lo que no tiene que configurarlo en cada formulario.
$.validator.setDefaults({ignore: ".ignore"});
También tenga en cuenta que el campo ignorar es un selector jQuery que se utiliza en la función jQuery not()
para que se pueda usar cualquier selector válido, no solo clases simples.
Consulte también http://docs.jquery.com/Plugins/Validation/validate#toptions para obtener detalles sobre otros valores predeterminados que se pueden establecer.
Simplemente agregue la regla de ignorar y defina el selector. En este ejemplo, la validación ignorará todos los elementos que tienen la class="ignore"
$("#myform").validate({
ignore: ".ignore"
})