Sah*_*wal 2 javascript typescript angular
keypress 事件没有使用角度2中的输入键触发,以下是html和angular 2代码:
HTML
<input [(ngModel)]="filters[i]" type="number" size="30" pInputText (keypress)="filterByField($event, col.field, fieldType.TEXT)" class="{{'input-'+col.field}}" title="Only numbers are allowed" />
Run Code Online (Sandbox Code Playgroud)
Angular 2
filterByField(event, field, fieldType){
console.log(event)
if(fieldType === this.fieldType.DD){
event.originalEvent.stopPropagation();
this.resetFilterBy(event.value, field);
this.loadData(null, true);
}
else if(fieldType === this.fieldType.TEXT){
let charCode = (event.which) ? event.which : event.keyCode;
console.log(charCode)
if (charCode == 101 && field == this.fields.TASKID.field){
event.preventDefault();
return false;
}
if((charCode === 13 && event.target.value.trim() !== "") || (charCode === 8) || (charCode === 46)) {
let filterValue = event.target.value;
this.resetFilterBy(filterValue, field);
this.loadData(null, true);
}
}
}
Run Code Online (Sandbox Code Playgroud)
小智 7
如果你只需要监听enter keypress事件,那么你可以在你的html中使用"keyup.enter"事件,如:
<input #box (keyup.enter)="onEnter(box.value)">
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.:)
小智 0
可能是因为 filterByField 函数中的额外参数而导致它被破坏
(keypress)="filterByField($event, col.field, fieldType.TEXT)"
作为调用的一部分传递,确保在 HTML 中绑定的所有属性都在组件中定义。
| 归档时间: |
|
| 查看次数: |
6851 次 |
| 最近记录: |