Ich möchte nicht, dass ein Benutzer Leerzeichen in ein Textfeld eingibt. Ich möchte es nicht bei der Validierung, sondern - ein Leerzeichen wird nicht auf dem Textfeld angezeigt, wenn es darauf klickt.Winkelbeschränkung, um keine Leerzeichen im Textfeld zuzulassen
Antwort
<input ng-model="field" ng-trim="false" ng-change="field = field.split(' ').join('')" type="text">
Update: um die Codequalität verbessern Sie benutzerdefinierte Richtlinie stattdessen erstellen können. Aber vergiss nicht, dass deine Anweisung die Eingabe nicht nur von der Tastatur, sondern auch vom Einfügen verhindern sollte.
<input type="text" ng-trim="false" ng-model="myValue" restrict-field="myValue">
ist es wichtig, ng-trim = "false" Attribut hinzufügen einem Eingang zu deaktivieren Trimmen.
angular
.module('app')
.directive('restrictField', function() {
return {
restrict: 'AE',
scope: {
restrictField: '='
},
link: function (scope) {
// this will match spaces, tabs, line feeds etc
// you can change this regex as you want
var regex = /\s/g;
scope.$watch('restrictField', function (newValue, oldValue) {
if (newValue != oldValue && regex.test(newValue)) {
scope.restrictField = newValue.replace(regex, '');
}
});
}
};
});
Warum sollten Sie '' split() 'gefolgt von' 'join()' verwenden, wenn Sie stattdessen ein einfaches 'replace()' verwenden können? – PLPeeters
Die ausgewählte Antwort ist wohl nicht sehr unobtrusive. Und wenn Sie es an mehreren Stellen verwenden müssen, erhalten Sie doppelten Code.
Ich bevorzuge die Eingabe von Leerzeichen mit der folgenden Direktive zu verhindern.
<input type="text" disallow-spaces>
Dies ist eine viel sauberere Lösung als die ausgewählte Antwort. – GEMI
Was würde passieren, wenn der Benutzer eine Zeichenfolge mit Leerzeichen an eine Eingabe anfügt? –
@IlyaLuzyanin Gute Frage. Meine ursprüngliche Richtlinie hätte in diesem Fall wahrscheinlich nicht funktioniert. Ich habe meine Antwort durch eine Direktive ersetzt, die berücksichtigt, dass Leerzeichen eingefügt werden. –
der Richtlinie Jason hat nicht funktioniert für mich schrieb:
app.directive('disallowSpaces', function() {
return {
restrict: 'A',
link: function($scope, $element) {
$element.bind('input', function() {
$(this).val($(this).val().replace(/ /g, ''));
});
}
};
});
Diese Direktive kann wie folgt aufgerufen werden. Ich musste zurückkehren ändern falsch: e.preventDefault() wie folgt:
app.directive('disallowSpaces', function() {
return {
restrict: 'A',
link: function($scope, $element) {
$element.bind('keydown', function(e) {
if (e.which === 32) {
e.preventDefault();
}
});
}
}
});
beim Einfügen des Textes fehlgeschlagen –
Ich sehe. Nun, das funktioniert, um spezielle Zeichen zu vermeiden, vielleicht ist es auch anpassungsfähig, um Räume zu sperren. Das Einfügen funktioniert hier nicht: http://kopy.io/KNoU1 – Bento
Dies funktioniert spezielles Zeichen einschließlich Leerzeichen verhindern eingeben:
app.directive('noSpecialChar', function() {
return {
require: 'ngModel',
restrict: 'A',
link: function(scope, element, attrs, modelCtrl) {
modelCtrl.$parsers.push(function(inputValue) {
if (inputValue == null)
return ''
let cleanInputValue = inputValue.replace(/[^\w]|_/gi, '');
if (cleanInputValue != inputValue) {
modelCtrl.$setViewValue(cleanInputValue);
modelCtrl.$render();
}
return cleanInputValue;
});
}
}
});
Wenn Sie sie erreichen wollen, ohne Richtlinie schreiben
ng-keydown="$event.keyCode != 32 ? $event:$event.preventDefault()"
- 1. Regulärer Ausdruck, um keine Leerzeichen in der E-Mail zuzulassen
- 2. bootstrap textarea hinzufügen Leerzeichen im Textfeld
- 3. Jsoup WhiteList, um Kommentare zuzulassen
- 4. xargs behält keine führenden Leerzeichen im Format
- 5. Java aktivieren, um abgelaufenes Zertifikat zuzulassen
- 6. Anpassen der Strukturansicht, um Mehrfachauswahl zuzulassen
- 7. Wie Leerzeichen im HTML-Textfeld nach jeder 4 Zahlen hinzufügen
- 8. Zugriffseingabe-Textfeld auf der Datenzugriffsseite mit nur Auswahl aktiviert, um Filter nach Suchen zuzulassen
- 9. Ändern meiner Website, um anonyme Kommentare zuzulassen
- 10. XML-Serialisierung, keine Leerzeichen
- 11. iOS 7 Kontaktnummer Leerzeichen sind keine Leerzeichen
- 12. Leerzeichen im Verzeichnispfad python
- 13. Trim entfernt keine Leerzeichen
- 14. Wie können Leerzeichen um einen Teilstring hinzugefügt werden, wenn noch keine Leerzeichen vorhanden sind?
- 15. Escape-Leerzeichen im Dateipfad
- 16. Fehler im schreibgeschützten Textfeld
- 17. "Docker-Compose" scheint keine lokalen Bilder zuzulassen oder zu erstellen
- 18. Validierung im Textfeld vba
- 19. Trimmen Textfeld Text nach 20 Zeichen und Leerzeichen, wenn Leerzeichen enthält
- 20. Kann ich eine Einschränkung auf eine SQL Server-Tabelle setzen, um keine leere Zeichenfolge zuzulassen?
- 21. Konfigurieren von interaktivem Python, um Leerzeilen innerhalb von Methoden zuzulassen
- 22. Beschränken von OpenSSH, um Uploads nur für bestimmte Verzeichnisse zuzulassen
- 23. JasperReport - Text umwandeln, um langen Text im Textfeld anzuzeigen
- 24. Korrekte Header, um Spoofing zu verhindern, aber benutzerdefinierte Antworten zuzulassen
- 25. Keine Null in Textfeld zulassen
- 26. P3P-Richtlinie funktioniert nicht, um Cookies von Drittanbietern im IE zuzulassen
- 27. Nginx, um nur POST-Anfragen für bestimmte URLs zuzulassen
- 28. Nein Zusätzliches Tag im Textfeld
- 29. Notepad ++ Leerzeichen im Einzug beibehalten
- 30. Blinken Cursor im Textfeld verhindern
Was haben Sie bisher versucht? Ich würde vorschlagen, dass Sie eine benutzerdefinierte Anweisung schreiben, die keyCode auf Keydown überwacht und entsprechende Maßnahmen ergreift. –