Saya memiliki bidang tanggal dan saya ingin menghapus placeholder secara default.
Saya menggunakan javascript onfocus
danonfocusout
acara untuk menghapus placeholder.
Adakah yang bisa membantu dengan menggunakan direktif angular2?
<input name="date" type="text" onfocus="(this.type='date')" onfocusout="(this.type='text')" class="dateinput">
Saya mencoba memecahkan dengan cara ini, tetapi saya mendapatkan masalah dengan mengatur ulang jenis bidang input.
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()
dalam hal ini, akan dipanggil dalam lingkup global. Itulah alasan lain mengapa menggunakan Angular dalam kasus ini sangat berharga.focus
stackblitz.com/edit/…focus
akan bekerja pada input dan textarea yang didukung, tetapi jika Anda memiliki komponen khusus yang tidak mendukungnya, Anda dapat menggunakanfocusin
sebagai gantinya :)Jika Anda ingin menangkap peristiwa fokus secara dinamis pada setiap masukan pada komponen Anda:
Lihat kode lengkapnya di sini: https://stackblitz.com/edit/angular-93jdir
sumber
Saya telah membuat petunjuk kecil yang mengikat dengan atribut tabindex. Ini menambah / menghapus kelas fokus-has secara dinamis.
sumber
Solusinya begini:
sumber
bekerja untuk saya dari Pardeep Jain
sumber