Javascript 如何清除某些按钮按下时的输入值?
我试图在用户按下逗号(,)时清除输入。因此,我所做的是,在Javascript 如何清除某些按钮按下时的输入值?,javascript,html,dom-events,Javascript,Html,Dom Events,我试图在用户按下逗号(,)时清除输入。因此,我所做的是,在(按键)上,我会检查keyCode,如果是逗号,我会通过将输入值设置为input.value='来清除输入 HTML: 如果按逗号,只需返回false即可: 类HomeComponent{ @ViewChild(“elem”)公共元素; clearInput(e:键盘事件){ 如果(例如keyCode===44){ this.element.nativeElement.value=''; 返回false; }否则{ log('不是逗号')
(按键)
上,我会检查keyCode
,如果是逗号,我会通过将输入值设置为input.value='
来清除输入
HTML:
如果按逗号,只需返回false即可:
类HomeComponent{
@ViewChild(“elem”)公共元素;
clearInput(e:键盘事件){
如果(例如keyCode===44){
this.element.nativeElement.value='';
返回false;
}否则{
log('不是逗号');
}
}
}
jsiddle:您需要做两个小改动:
keyup
事件获取键入的最新密钥,并将其包含在input
if
条件中使用e.key===','
clearInput
代码中添加preventDefault()
,如下所示:
clearInput (e: KeyboardEvent) {
if (e.keyCode === 44) {
e.preventDefault(); // <-- Here
this.element.nativeElement.value = '';
} else {
console.log('Not a comma');
}
}
clearInput(e:键盘事件){
如果(例如keyCode===44){
e、 preventDefault();//您可以添加一些解释:逗号的插入将由与代码相同的“keyup”事件触发。但是浏览器必须首先运行代码,因为您的侦听器不是被动的(可能是preventDefault()或返回false),所以keypress事件将首先运行侦听器(清除该字段)然后是默认侦听器(在空字段中插入逗号)。因此,其他解决方案可能是键入或将侦听器标记为被动。-但preventDefault()最适合您的情况。
@ViewChild( 'elem' ) public element;
clearInput( e: KeyboardEvent ) {
if ( e.keyCode === 44 ) {
this.element.nativeElement.value = '';
} else {
console.log('Not a comma');
}
}
clearInput (e: KeyboardEvent) {
if (e.keyCode === 44) {
e.preventDefault(); // <-- Here
this.element.nativeElement.value = '';
} else {
console.log('Not a comma');
}
}