Ich versuche, Eingabetext-Anweisung zu erstellen, die nur Zahlen innerhalb eines bestimmten Bereichs akzeptiert. Ich habe versucht, den Wert als Integer zu analysieren, natürlich min
und max
hat nicht funktioniert.Lassen Sie nur Zahlen im Bereich in das Textfeld eingeben
Ich möchte nicht den Eingang [type = "number"] verwenden.
Letztendlich versuche ich ein Geburtsdatum frei Eingabe Textfeld zu erstellen. wie unten gesehen:
Die Richtlinie I angepasst habe [die ich im Moment zu verwenden, ich versuche] - das Original @angularjs: allows only numbers to be typed into a text box
app.directive('onlyDigits', function() {
return {
restrict: 'A',
require: '?ngModel',
link: function (scope, element, attrs, modelCtrl) {
modelCtrl.$parsers.push(function (inputValue) {
if (inputValue == undefined) return '';
var transformedInput = inputValue.replace(/[^0-9]/g, '');
var theInt = parseInt(transformedInput);
if (transformedInput !== inputValue) {
modelCtrl.$setViewValue(transformedInput);
modelCtrl.$render();
}
return theInt;
});
}
};
gefunden werden kann Was Ich hoffte zu tun, nachdem ich das gelöst habe, ist eine bedingte ng-show
zu tun, um einen Fehler für ein span-Element zu zeigen - wenn der Benutzer einen Wert über 31 (für den Tag) 12 (für den Monat) und so weiter eingegeben hat.
Ich begrüße alle Vorschläge.
Vielen Dank.
Was ist der Grund, dass Sie nicht wollen, 'type = "number"'? Wegen winziger Scroll-Tasten, die bei der Zahleneingabe erscheinen? – oKonyk
Hey danke für die Nachricht. Nein, ich kann diese mit CSS verstecken. Da 'minlength' und' maxlength' 'attrs' nicht mit' type = "number" funktionieren und wenn ich diese attrs dann manuell benutze, benötigt es dann mehr DOM-Manipulation über jQuery, also versuche ich zu sehen wenn es einen mehr eckigen Weg gibt, dies mit dem Eingabetyp zu tun, der als "Text" bleibt. –
Wenn Sie möchten, dass der Text eingereicht wird, um als Nummer zu fungieren, habe ich eine Lösung dafür, aber nicht in eckiger Weise, sondern nur in Javascript. Alles, was Sie tun müssen, ist zu überprüfen, ob sich Ihr charCode in dem von Ihnen angegebenen Bereich befindet. Wenn Sie wollen, kann ich den Code hier psot –