slickgrid validieren Spalte mit regex
Gibt es eine einfache Probe mit Spalte Validierung:
function requiredFieldValidator(value) {
if (value == null || value == undefined || !value.length) {
return {valid: false, msg: "This is a required field"};
} else {
return {valid: true, msg: null};
}
}
und zum überprüfen der Spalte es wird nur benötigt werden, um diese option: validator: requiredFieldValidator
Aber wie kann ich mit regex-Funktion, wenn ich mich übergeben müssen zusätzliche parameter - regex-string.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Standardmäßig, Sie können nicht übergeben, weitere Parameter in die
validator
Methode, jedoch können Sie ganz einfach Bearbeiten Sie die Quelle, um es zu ermöglichen.in
slick.editors.js
suchen:ändern:
var validationResults = args.column.validator($input.val());
zu:
var validationResults = args.column.validator($input.val(), $input);
dies wird sich ändern Sie Ihre validator Signatur der Methode, um so etwas wie:
Mit, dass, können Sie alle Attribute, die Sie wollen, aus dem input mit
input.attr('validation-expression')
oderinput.data...
oder was auch immer.slick.editors.js
. Muss ich angeben, meinen eigenen ? und wie der code Aussehen wird, anstattvalidator: requiredFieldValidator
args.column.validator($input.val());
ist derzeit nur übergeben Sie den Wert in IhremrequiredFieldValidator
. Geben Sie den code würde immer noch so Aussehen, wievalidator: requiredFieldValidator
können, aber das wäre Referenzfunction requiredFieldValidator(value, input)
Sie möchten die regex definiert als ein Attribut im input-ersten.regex
- Attribut für die andere Spalte verschiedene regex-string ?Der beste Weg, dies zu nähern, in meinen Augen jedenfalls, ist der code Ihre eigenen editor, mit dem Sie ' ll fügen Sie in
slick.editor.js
als neue custom-editor. Diese Datei ist für das auch. Ich habe Umsetzung der regex testen und es funktioniert Super.Hier ist meine neue editor ist nicht nur für Regex, sondern auch für verschiedene Konditionsarten, die für Beispiel eine Möglichkeit
min:2
wäre erforderlich, eine minimale Anzahl von 2, während einminLength:2
wäre erforderlich, die Eingabe zu einem String mit mindestens 2 chars, etc... Jetzt für die, die Sie wirklich suchen, das wäre in meinen code definition derpattern
geben.Also im Grunde, müssen Sie include this code innerhalb der
slick.editor.js
:Dann in meinem SlickGrid Spalte definition bin ich aufrufen, dass der neue editor, mit dem ich definiert und an einigen Optionen, die ich beschlossen, zu gehen in ein
editorOptions
als Objekt und das gibt mir mehr Flexibilität, wenn Sie fügen Sie alle Optionen, die ich will -, Muster -, msg -, minLength, etc... alles in einem. Mein Beispiel ist für eine E-Mail regex-Muster-Validierung.- Und voilà, funktioniert wie ein Charme!!!
Ich bin kaum mit der
editor:TextCellEditor
mehr, da mein neuesConditionalCellEditor
- editor gibt mir viel mehr Flexibilität. Hoffe es hilft und lassen Sie mich wissen, wie es geht...Damit verlängern Sie die Antwort von @mike-gwilt, können Sie die cellAttrs Spalte Optionen aus, um anzugeben (in der Spaltendefinition) die regulären Ausdrücke und die Nachricht zu berichten, wie diese:
Dann der generierte html-Code sieht wie folgt aus:
Schließlich, als Sie Zugriff auf das input-element innerhalb Ihrer Validierung Funktion, definieren es so:
Das war sehr hilfreich. Ich bin der Erstellung von verschiedenen input-Typen für jede Art von Einstieg möglich - E-Mail, Telefon, zip und so weiter.
Um dies zu tun mit JSON, müssen Sie ändern Sie Ihre slick.grid.js Datei bewerten Sie die Einträge, um Sie zu einem Objekt aufrufen.
}
Machen Sie Ihre JSON-Spalten haben das update:
Machen Sie slick.editors.js Aussehen: