Ich möchte weiße Leerzeichen/Leerstellen in meiner eckigen 2 Form vermeiden? Ist es möglich? Wie kann das gemacht werden?Wie validieren Sie weiße Leerzeichen/leere Leerzeichen? [Angular 2]
Antwort
Vielleicht kann dieser Artikel helfen Ihnen http://blog.angular-university.io/introduction-to-angular-2-forms-template-driven-vs-model-driven/
Bei diesem Ansatz haben Sie Formcontrol verwenden, dann für Wertänderungen beobachten und dann die Maske auf den Wert anzuwenden. Ein Beispiel sollte sein:
...
form: FormGroup;
...
ngOnInit(){
this.form.valueChanges
.map((value) => {
// Here you can manipulate your value
value.firstName = value.firstName.trim();
return value;
})
.filter((value) => this.form.valid)
.subscribe((value) => {
console.log("Model Driven Form valid value: vm = ",JSON.stringify(value));
});
}
Um die Formularerstellung zu vermeiden, verwenden Sie einfach required
attr in den Eingabefeldern.
<input type="text" required>
Oder sendet nach
Wenn das Formular übergeben, können Sie str.trim() verwenden, weiße Flächen entfernen Form einer Zeichenfolge beginnen und enden. Ich habe eine Funktion unterbreiten Ihnen zeigen:
submitFunction(formData){
if(!formData.foo){
// launch an alert to say the user the field cannot be empty
return false;
}
else
{
formData.foo = formData.foo.trim(); // removes white
// do your logic here
return true;
}
}
Vielen Dank für Ihre Hilfe, aber was ich brauche, ist zu vermeiden, dass der Benutzer nur Leerräume hinzufügt und das Formular speichert. Ich glaube, dass es möglich ist, es in irgendeiner Weise zu bestätigen. Was denken Sie? – Eusthace
Ich habe noch keine Eingabemaske mit Winkel 2 Formular verwendet. Wenn ich das tue, werde ich dir helfen. Aber jetzt kann ich nicht. Versuchen Sie nach maskierten Eingaben für Winkel 2 zu suchen;) – vinagreti
Vielen Dank! Ich werde versuchen, es zu finden. – Eusthace
Sie können einen benutzerdefinierten Validierer erstellen, um dies zu behandeln.
new FormControl(field.fieldValue || '', [Validators.required, this.noWhitespaceValidator])
Add noWhitespaceValidator Verfahren zu Ihrer Komponente
public noWhitespaceValidator(control: FormControl) {
let isWhitespace = (control.value || '').trim().length === 0;
let isValid = !isWhitespace;
return isValid ? null : { 'whitespace': true }
}
und im HTML-
<div *ngIf="yourForm.hasError('whitespace')">Please enter valid data</div>
Ich denke, ich bevorzuge diesen Ansatz, weil es die Regel wiederverwendbar macht. Sogar meine Antwort wurde als die richtige markiert. – vinagreti
Um es in anderen Komponenten wiederverwendbar zu machen: Ersetzen Sie 'public' durch 'export function', fügen Sie es in eine Datei ein (zB: src/app/utils/no-whitespace.validator.rs), und fügen Sie die Zeile zum Importieren von FormControl hinzu . Jetzt können Sie diesen Validator in jedes Steuerelement importieren, das Sie mögen :) – rmcsharry
@rmcsharry Sie haben absolut Recht .. so müssen wir den Code schreiben und pflegen. –
Was ich tat ein Validator erstellt wurde, den Samething als Winkel für minLength tat, außer ich das addierte trimmen()
import { Injectable } from '@angular/core';
import { AbstractControl, ValidatorFn, Validators } from '@angular/forms';
@Injectable()
export class ValidatorHelper {
///This is the guts of Angulars minLength, added a trim for the validation
static minLength(minLength: number): ValidatorFn {
return (control: AbstractControl): { [key: string]: any } => {
if (ValidatorHelper.isPresent(Validators.required(control))) {
return null;
}
const v: string = control.value ? control.value : '';
return v.trim().length < minLength ?
{ 'minlength': { 'requiredLength': minLength, 'actualLength': v.trim().length } } :
null;
};
}
static isPresent(obj: any): boolean {
return obj !== undefined && obj !== null;
}
}
ich dann in meinem app.component.ts overrode die Winkel vorgesehen minLength Funktion von
import { Component, OnInit } from '@angular/core';
import { ValidatorHelper } from 'app/common/components/validators/validator-helper';
import { Validators } from '@angular/forms';
@Component({
selector: 'app-root',
templateUrl: './app.component.html'
})
export class AppComponent implements OnInit {
constructor() { }
ngOnInit(): void {
Validators.minLength = ValidatorHelper.minLength;
}
}
Jetzt wird überall Winkel des minLength in Validator baute es die minLength verwenden, die Sie im Helfer erstellt haben.
Validators.compose([
Validators.minLength(2)
]);
- 1. Streifen weiße Leerzeichen am Eingang
- 2. html Eingabeformular erscheinen weiße Leerzeichen
- 3. Angular 2 Validieren Sie das Formular auf Senden
- 4. Weiße Leerzeichen beim Benennen einer Klasse?
- 5. Validieren Sie ein Formular mit Angular-Material
- 6. wie man weiße Leerzeichen zwischen Wörtern in iText5 bleibt
- 7. Wie kann ich zwei zusammenhängende Leerzeichen in Angular 2 anzeigen?
- 8. Wie bekomme ich weiße Leerzeichen in NSString mit Webserver
- 9. Wie wird `^ I` als 4 weiße Leerzeichen angezeigt?
- 10. Wie validieren Sie ein E-Mail-Feld in angular 2 mit modellgesteuerten Formular
- 11. Validieren Sie 2 Listen mit FluentValidation
- 12. Weiße Leerzeichen in Objektschlüssel und Wert rekursiv zuschneiden
- 13. Angular 2: Einfache Eingabevalidierung
- 14. Angular 2 CurrencyPipe Leerzeichen zwischen Währung und Nummer?
- 15. Wie validieren 2 Felder im Freien?
- 16. Angular 2 - Wie übergeben Sie URL-Parameter?
- 17. Wie würden Sie eine Checkbox in ASP.Net MVC 2 validieren?
- 18. Angular 2 Wählen Sie editierbare
- 19. Angular 2: Vergleichen Sie 2 Formen
- 20. Wie zeigen Sie ein Literal {5 + 2} in Angular 2
- 21. So trimmen (entfernen) weiße Leerzeichen vom Ende eines NSAttributedString
- 22. Wie in Angular 2
- 23. Wie Angular 2
- 24. Wie funktioniert Ionic 2 mit Angular 2?
- 25. Einschließlich Leerzeichen in Angular characterLimit
- 26. Angular - nicht validieren Form von Radio-Tasten
- 27. Wie Produktionsmodus in Angular 2
- 28. Verspricht in Ionic 2/Angular 2, wie?
- 29. Angular 2, Ionic 2
- 30. Angular 2 Loop von Observablen
Sie müssen nur das Feld als Zwei-Wege-Datenbindung trimmen. Sie können auch eine benutzerdefinierte Rohr zu betrachten – afmeva
Vielleicht kann dieser Artikel Ihnen helfen http://blog.angular-university.io/introduction-to-angular-2-forms-template-driven-vs-model-driven/ – vinagreti