Comment détecter un événement onBlur dans Angular2? Je souhaite l’utiliser avec
<input type="text">
Quelqu'un peut-il m'aider à comprendre comment l'utiliser?
Utilisez (eventName)
pour les événements liés au DOM, ()
est utilisé pour la liaison des événements. Utilisez également ngModel
pour obtenir une liaison bidirectionnelle pour la variable myModel
.
Balisage
<input type="text" [(ngModel)]="myModel" (blur)="onBlurMethod()">
Code
export class AppComponent {
myModel: any;
constructor(){
this.myModel = '123';
}
onBlurMethod(){
alert(this.myModel)
}
}
Alternative (pas préférable)
<input type="text" #input (blur)="onBlurMethod($event.target.value)">
Pour que le formulaire piloté par le modèle déclenche la validation sur blur
, vous pouvez passer le paramètre updateOn
.
ctrl = new FormControl('', {
debounce: 1000,
updateOn: 'blur', //default will be change
validators: [Validators.required]
});
vous pouvez également utiliser l'événement (focusout) pour cela.
<input type="text" [(ngModel)]="model" (focusout)="yourMethod($event)">
Et dans son dossier
export class AppComponent {
model: any;
constructor(){ }
yourMethod(){
console.log('your Method is called');
}
}
vous pouvez utiliser directement (flou) event dans la balise input.
<div>
<input [value] = "" (blur) = "result = $event.target.value" placeholder="Type Something">
{{result}}
</div>
et vous obtiendrez une sortie dans " result "
/*for reich text editor */
public options: Object = {
charCounterCount: true,
height: 300,
inlineMode: false,
toolbarFixed: false,
fontFamilySelection: true,
fontSizeSelection: true,
paragraphFormatSelection: true,
events: {
'froalaEditor.blur': (e, editor) => { this.handleContentChange(editor.html.get()); }}
Voici la réponse proposée sur le dépôt Github:
// example without validators
const c = new FormControl('', { updateOn: 'blur' });
// example with validators
const c= new FormControl('', {
validators: Validators.required,
updateOn: 'blur'
});
Github: feat (forms): ajout de l'option updateOn blur à FormControls
HTML
<input name="email" placeholder="Email" (blur)="$event.target.value=removeSpaces($event.target.value)" value="">
TS
removeSpaces(string) {
let splitStr = string.split(' ').join('');
return splitStr;
}