2016-05-31 5 views
1

Kendo validator scheint Muster Attribut (regex)

<input id="myID" 
 
     name="myName" 
 
     class="form-control k-invalid" 
 
     data-bind="value: ViewModel.JobNo, visible: Layout.isEditMode" 
 
     required="required" 
 
     data-required-msg="The Job No. field is required." 
 
     pattern="\d{10}" 
 
>

Ich habe ein Eingangselement, wie oben in einer Form ignorieren, die ich möchte Benutzer zwingen, 10-stellige Zahlen einzugeben.

ich fügen Sie einfach einen pattern = "\d{10}" und dachte, wenn ich validator.validate() genannt, wird die Validierung für mich behandeln, aber es scheint nicht der Fall ist, in der Tat die pattern Regel ignoriert wird immer während der required Regel perfekt funktioniert.

Ich habe versucht, es zu überprüfen, so opend ich Entwicklerkonsole in Chrome und typisiert die folgende:

$("#myID").kendoValidator(); 
 
$("#myID").data("kendoValidator").validate()

Wenn ich das Feld leer lassen, wird dies mir falsch geben, und sag es ist erforderlich (gut).

Aber wenn ich einige Zahlen eingegeben habe, oder irgendwelche anderen Zeichenfolgen, die das Muster verletzen sollten, gibt mir das immer noch wahr und wird die Validierung bestehen.

Was habe ich falsch gemacht, und wie kann ich erreichen, was ich wollte? Vielen Dank!

+0

Obwohl dies keine Lösung für Ihr Gesamtproblem ist, wenn Sie möchten, dass der Benutzer nur eine 10-stellige Nummer eingibt, dann erlaubt Ihr aktueller Ausdruck 10 oder mehr Ziffern irgendwo in Ihrer Zufallszahlenfolge. Ich würde deinen Ausdruck von '\ d {10}' zu '^ \ d {10} $' –

Antwort

1

Das ist wahrscheinlich, weil Sie das type Attribut von input Tag vermissen. Das Hinzufügen eines type Attributs sollte das Problem beheben.

<input id="myID" 
     type="text" <!-- enter what ever type of input it is--> 
     name="myName" 
     class="form-control k-invalid" 
     data-bind="value: ViewModel.JobNo, visible: Layout.isEditMode" 
     required="required" 
     data-required-msg="The Job No. field is required." 
     pattern="\d{10}" 
> 

Ich habe ein telerik dojo ein bestehendes Beispiel nur mit dem Arbeits zeigen. Die erste Eingabe hat keinen Typ und daher funktioniert die Mustervalidierung nicht, aber sie funktioniert bei der zweiten Eingabe.

+0

ändern Om danke, ich wusste nicht, dass es ein Muss ist, um dies zu erreichen ... Du hast meinen Tag gerettet ! – shole