2017-05-03 8 views
-3

Wie verhindert man, dass der Benutzer ein # Zeichen in ein Eingabefeld eingibt?Benutzer auf bestimmte Zeichen im Eingabefeld beschränken

Ich kämpfe um es zu erreichen.

+0

Bitte geben Sie uns mo Informationen über Ihren aktuellen Versuch, Ihr Problem und Ihren aktuellen Code. – Sakuto

+0

Ich habe ein Eingabefeld und ich möchte den Benutzer so einschränken, dass er # nicht in das Eingabefeld eingeben kann. – sonu

+0

@sonu können Sie [Muster] (https://www.w3schools.com/tags/att_input_pattern.asp) verwenden. –

Antwort

4

Ein Weg wäre, eine Direktive zu machen, die die Dinge filtert, also wird nichts in den modellbindenden Teil der App eingehen, weil sie nichts eingeben können. Unten ist eine Beispiel-Direktive für deinen Fall

import {Directive, ElementRef, HostListener} from '@angular/core'; 

@Directive({ 
    selector: '[inputFilter]' 
}) 
export class inputFilterDirective { 



    constructor(private el: ElementRef) { 
    } 


    @HostListener('keydown', ['$event']) onKeyDown(event) { 
     let e = <KeyboardEvent> event; 

     if (e.keyCode == 35) { 
      e.preventDefault(); 
     } else { 
      return; 
     } 

    } 
} 

ich es nur für Zahlen getan hatte, so könnte nicht die Benutzer etwas anderes als Zahlen eingeben, aber ich verändert es für Hashtag => das Hashtag eine keyCode von 35.

Sie die Richtlinie verwenden wie diese <input inputFilter [(ngModel)]="whatever"/> hat

+1

schön seine Arbeit thkning you man. – sonu

+0

@sonu gibt es einen Regax-Ausdruck, der die Eingabe von Zeichen einschränkt – NunnaS

Verwandte Themen