Ich möchte den Benutzer von der Eingabe von Sonderzeichen in einem Nummernfeld auf einem Android-Gerät beschränken. Das "." (Punkt) Zeichen übergibt Werte in einem "onkeypress" -Ereignis wie erwartet nicht.Beschränken Sie den Benutzer Eingabezeitraum in Eingabefeld auf Android
Mit <input type="text">
kann ich den Benutzer von der Eingabe eines Sonderzeichens blockieren.
Aber mit <input type="number"/>
kann ich nicht den Benutzer von der Eingabe von Punktschlüssel einschränken.
Versucht mit vielen Stapelüberlaufpfosten. Aber immer noch kein Glück.
Unten ist der Code ich versuche:
HTML
<input type="number" ng-model="registrationField.mobilenumber" tabindex="0" no-special-character="^[0-9-]*$" >
JS
app.directive("noSpecialCharacter", [function() {
return {
restrict: "A",
link: function(scope, elem, attrs) {
var limit = parseInt(attrs.limitTo);
var regex = RegExp(attrs.noSpecialCharacter);
angular.element(elem).on("keydown", function(e) {
if(e.key == "Unidentified"){
e.preventDefault();
return false;
}
});
}
}
}])
ich keydown
Ereignis verwenden, weil keypress
Ereignis nicht auf Presse Auslösen Punkt-Taste in der Zifferntastatur.
Außerdem erhalte ich die e.key
als Unidentified
, wenn Benutzer die Punkttaste eingegeben hat. Also versuche ich damit zu manipulieren.
Ich habe versucht mit dem letzten Wert trimmen, wenn der Benutzer die Punkttaste eingegeben hat und das funktioniert auch nicht.
Bitte schlagen Sie einen möglichen Weg vor.
Versucht den obigen Code in Android Nexus 5X
Gerät.
Wenn Sie versuchen, eine Eingabeüberprüfung für eine Telefonnummer zu erreichen, versuchen Sie nicht, 'input [type = number]' zu verwenden. Es ist für die tatsächlichen Zahlen gedacht. Dann versuchen Sie stattdessen Eingabemasken – Eddi
@ Eddi ich verstehe. Der Client möchte jedoch nur die Zifferntastatur verwenden. Gibt es eine andere Möglichkeit, es zu implementieren? – sasi
Haben Sie den Eingang 'type = tel' ausprobiert? – Eddi