2016-06-22 4 views
1

Ich arbeite eine Direktive, um autotab zwischen Elementen immer wenn die maxLength des Elements getroffen wird. Aber zuerst versuche ich herauszufinden, wie man sicherstellen kann, dass ein Element keinen Wert haben kann, dessen Länge größer ist als die maximale Länge des Elements.Wie setze ich den Wert eines Elements innerhalb einer Direktive?

Hier ist, was ich bisher ausprobiert habe:

if (el.value.length >= el.maxLength) { 
    el.value = el.value.substr(0, el.maxLength); 
    } 

Wenn ich einen Haltepunkt festgelegt und durch sie Schritt, direkt nach dieser Ausführung wird el.value richtig eingestellt ist, aber in der Ansicht so dass es immer noch den Benutzer tippen.

+0

Wäre nicht das 'maxLength' Attribut den Wert Länge beschränken, warum tun Sie brauche diese Bedingung 'el.value.length> = el.maxLength'? – AngJobs

+0

'' – AngJobs

Antwort

0

Das dynamische Ändern von Validatorattributen wird derzeit nicht unterstützt. Sie müssen statisch hinzugefügt werden (keine [] Bindung) und nur einmal gelesen werden, wenn die Steuerinstanz erstellt wird.

Sie können dies tun Formen mit der Verwendung von FormBuilder und einem Prüfer, der einen Verweis auf andere Werte hat, die die Validierung in How to change validation of a control after it has been initiated? wie gezeigt beeinflussen könnten

+0

Ich halte dies nicht wirklich für einen Validator, ich versuche nur einen Wert zu erzwingen –

+0

Siehe auch http: // stackoverflow .com/questions/37800841/input-mask-fields-in-angular2-forms Ihre Frage ist mir nicht klar genug, um bessere Vorschläge zu machen –

+0

Ich bin mir nicht sicher, wie ich das klären kann. Wenn der Benutzer eine Eingabe eingibt, überprüfe ich, ob die Länge des Eingabewerts größer als die maximale Länge der Eingabe ist. Wenn dies der Fall ist, möchte ich den Wert der Eingabe so abschneiden, dass sie der maximalen Länge entspricht. Wenn ich also ein Feld mit einer maximalen Länge von 5 habe, kann der Benutzer nicht mehr als 5 Zeichen eingeben. In jQuery hätte ich '$ (" # element "). Val ($ (" # element "). Val(). Substr (0, maxlength))' –