Benutzerdefinierte Methode des jQuery-Validierungs-Plugins. Mehrere Parameter

Lesezeit: 1 Minute

Ich versuche, einen benutzerdefinierten Validator mit dem jQuery-Validierungs-Plugin zu verwenden. Ich bin mir jedoch nicht sicher, wie Sie mehrere Argumente an eine Validierungsmethode übergeben sollen? Ich habe versucht, (2,3), geschweifte Klammern und Kombinationen zu verwenden, aber ich bin gescheitert.

Das ist der Code – ???? markiert den Bereich, über den ich Informationen benötige:

$(document).ready(function() {
        jQuery.validator.addMethod("math", function(value, element, params) {
            return this.optional(element) || value == params[0] + params[1];
        }, jQuery.format("Please enter the correct value for {0} + {1}"));

        $("#form_register").validate({
            debug: true,
            rules: {
                inputEl: { required: true, math: ???? }
            },
            messages: {
                inputEl: { required: "Required", math: "Incorrect result" }
            }
        });
});

Javascript-Arrays:

[value1,value2,value3]

SO könnte Ihr Code sein:

inputEl: { required: true, math: [2, 3 ,4 , 5] }

Sie können auch ein normales JavaScript-Objekt als Parameter übergeben, mit dem ich persönlich einfacher zu arbeiten finde:

jQuery.validator.addMethod("myRule", function (value, element, options) {
    return value === options.data;
}, "My Rule says no!");

$("#input").rules("add", { myRule: { data: "foo" } });

  • Ein Nachteil davon ist, dass Sie dann keine parametrierten Fehlermeldungen verwenden können. Dieses Plugin formatiert Fehlermeldungen automatisch mit gegebenen Werten oder Parametern, sodass Sie eine Fehlermeldung „Bitte wählen Sie mehr als {0} Elemente“ haben können und es wird „{0}“ automatisch durch den Wert der Eingabe (oder durch den ersten Parameter) ersetzen. Wenn Parameter also ein Objekt ist, funktioniert es nicht. Und mit mehreren Parametern können Sie benutzerfreundlichere Fehlermeldungen erhalten, beispielsweise in Bereichssituationen, in denen params[0] könnte ein unterer Bereichswert und Parameter sein[1] oberen Bereichswert.

    – Grengas

    6. November 2018 um 16:20 Uhr


1176280cookie-checkBenutzerdefinierte Methode des jQuery-Validierungs-Plugins. Mehrere Parameter

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy