Frage

könnten Sie einen Blick auf dieses http://jsbin.com/osolo/ bitte?

Wenn Sie einen Buchstaben in Min Alten eingeben, anstatt eine Zahl dann drücken Sie einreichen diese jquery Prüfung verwendet einen regulären Ausdruck in einer benutzerdefinierten Validierungsmethode validiert verwenden, das funktioniert, aber ich bin nun auf der Suche, um es dynamischer etwas zu machen.

In der benutzerdefinierten Validierungsmethode der Zeilen

var data = $(element).metadata(); 

Meta-Daten aus dem Element greift validiert, was ich möchte, ist zu tun, verwenden Sie die

data.validateOptions.regex

als die Regex mit testen (ich kann nicht sehen, das ein Problem zu sein), was ich bin ein Problem sehen kann, ist, dass, wenn das Feld nicht validiert, anstatt eine Nachricht zu verwenden, die zugeführt wird, wenn Sie anrufen

jQuery.validator.addMethod(name, method, message)

ich möchte verwenden,

data.validateOptions.message

als die Fehlermeldung innerhalb der benutzerdefinierten Methode kann jemand mich in die richtige Richtung weisen bitte?

Danke

OneShot

War es hilfreich?

Lösung

ich denke, Alex Antwort wird nicht funktionieren, weil Strings unveränderlich in JS ist.

Es ist zwar nah. Beginnend mit Alex 'Code, wenn Sie einen Verschluss erstellen enthält das Datenobjekt (oder auch nur eine Nachricht string) und auch eine Funktion, um die Nachricht zurückkehrt, können Sie die Funktion als drittes Argument an den addmethod Aufruf übergeben. Wie so:

(function() {
    var data = {};
    var messager = function() {
        return data.validateOptions.message;
    };
    jQuery.validator.addMethod("perorgproperty", function(value, element) { 
        debugger; 
        //alert('testing perorgproperty'); 
        data = $(element).metadata();
        return this.optional(element) || /^\d+$/i.test(value); 
    }, messager);
})();

Andere Tipps

Was ist ein Verschluss zu schaffen?

var data = {};
jQuery.validator.addMethod("perorgproperty", function(value, element) { 
    debugger; 
    //alert('testing perorgproperty'); 
    data = $(element).metadata(); 

    return this.optional(element) || /^\d+$/i.test(value); 
}, data.validateOptions.message); 

Solange die Funktion, bevor die Nachricht ausgewertet wird, wäre nicht die message nur als Referenz übergeben sein,?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top