Ich habe ein Datumsfeld und möchte den Platzhalter standardmäßig entfernen.
Ich verwende Javascript onfocus
und onfocusout
Ereignisse zum Entfernen von Platzhaltern.
Kann jemand bei der Verwendung der Angular2-Direktive helfen?
<input name="date" type="text" onfocus="(this.type='date')" onfocusout="(this.type='text')" class="dateinput">
Ich versuche auf diese Weise zu lösen, aber ich habe Probleme beim Zurücksetzen des Eingabefeldtyps.
import { Directive, ElementRef, Input } from 'angular2/core';
@Directive({
selector: '.dateinput',
host: {
'(focus)': 'setInputFocus()',
'(focusout)': 'setInputFocusOut()',
}})
export class MyDirective {
constructor(el: ElementRef) { this.el = el.nativeElement; console.log(this.el);}
setInputFocus(): void {
//console.log(this.elementRef.nativeElement.value);
}
}
dateinput
?onfocusout="someMethod()"
someMethod()
In diesem Fall wird im globalen Bereich aufgerufen. Dies ist ein weiterer Grund, warum die Verwendung von Angular in diesem Fall wertvoll ist.focus
stackblitz.com/edit/…focus
wird auf unterstützten Eingaben und Textbereichen funktionieren, aber wenn Sie benutzerdefinierte Komponenten haben, die dies nicht unterstützen, können Siefocusin
stattdessen verwenden :)Wenn Sie das Fokusereignis bei jeder Eingabe in Ihrer Komponente dynamisch erfassen möchten:
Den vollständigen Code finden Sie hier: https://stackblitz.com/edit/angular-93jdir
quelle
Ich habe eine kleine Direktive erstellt, die mit dem Attribut tabindex verknüpft ist. Die Has-Focus-Klasse wird dynamisch hinzugefügt / entfernt.
quelle
Die Lösung lautet:
quelle
arbeitet für mich von Pardeep Jain
quelle