Mi sono imbattuto in un problema simile due volte di recente e ho trascorso un sacco di tempo a cercare di capirlo, quindi ho intenzione di lasciare qui una soluzione semplice. E se il moderatore pensa che questo non è il posto giusto, fammelo sapere.
l'errore si verifica durante l'esecuzione di questo codice di esempio:
$(document).ready(function() {
$.validator.addMethod("numberEqualTo", function (value, element, parameter) {
return parseInt(value) === parseInt(parameter);
}, "Values must match");
$("#example2").validate({
focusInvalid: false,
onkeyup: true,
onfocusout: true,
errorElement: "div",
errorPlacement: function (error, element) {
error.appendTo("div#errors");
},
rules: {
"example2-fullname": {
required: true,
minlength: 5
},
"example2-phone": {
required: true,
number: true
},
"example2-zip": {
required: true,
number: true,
rangelength: [3, 5]
},
"example2-value": {
required: true,
number: true,
numberEqualTo: 10
}
},
messages: {
"example2-fullname": {
required: "You must enter your full name",
minlength: "First name must be at least 5 characters long"
},
"example2-phone": {
required: "You must enter your phone number",
number: "Phone number must contain digits only"
},
"example2-zip": {
required: "You must enter your zip code",
number: "Zip code must contain digits only",
rangelength: "Zip code must have between 3 to 5 digits"
},
"example2-value": {
required: "You must enter your value",
number: "Value must be a digit",
numberEqualTo: "Value must be equal to 10"
}
}
});
});
Perché? Per qualche motivo se si specifica esplicitamente:
onkeyup: true,
onfocusout: true,
il programma genererà l'eccezione menzionata. Questo è il caso quando si imposta ANY o BOTH sopra le opzioni su 'true'. D'altra parte se si imposta ENTRAMBI in "falso" o UNO in "falso" e si rimuove l'altro, funzionerà come previsto.
La cosa più importante: se elimini o commenta una di queste opzioni, quella che hai rimosso sarà impostata su default, che è 'true' E VINTO "T genera qualsiasi errore. Quindi è possibile personalizzare la convalida plug-in esattamente nel modo desiderato, è sufficiente ricordare di non impostare esplicitamente queste opzioni su "vero"
Spero che questo possa aiutare qualcuno, nonostante il fatto che il vero problema in questa domanda per questo particolare utente sia stato
Hai taggato questa domanda con [tag: jquery-validation-engine] .Questo è un plugin completamente diverso.Edited. Grazie. – Sparky