javascript - ultimo - Borrar una entrada en la prensa de coma no borra la coma
eliminar ultimo caracter javascript (3)
Añadir preventDefault .
Agregue preventDefault()
en su código clearInput
como se muestra a continuación:
clearInput(e: KeyboardEvent) {
if (e.keyCode === 44) {
e.preventDefault(); // <-- Here
this.element.nativeElement.value = '''';
} else {
console.log(''Not a comma'');
}
}
Lea más acerca de prevenirDefault here .
Estoy intentando borrar una entrada cuando un usuario presiona coma (,). Entonces, lo que hice fue, al (keypress)
keyCode
(keypress)
verificaba el keyCode
y si es una coma, keyCode
la entrada al establecer el valor de entrada a input.value = ''''
.
Sin embargo, el problema es que incluso si borra las letras que escribo, no borra la coma. ¿Qué estoy haciendo mal?
Este es un problema del problema.
Pasos:
- Escriba
abc
. - Tipo
,
- Observe que
abc
fue borrado pero la entrada aún tiene a,.
HTML:
<input type="text" #elem (keypress)="clearInput($event)">
Código:
@ViewChild( ''elem'' ) public element;
clearInput( e: KeyboardEvent ) {
if ( e.keyCode === 44 ) {
this.element.nativeElement.value = '''';
} else {
console.log(''Not a comma'');
}
}
Estoy usando Angular 6.
Necesitas hacer 2 cambios menores:
- Utilice el evento
keyup
para obtener la última clave escrita e incluirla en el valor deinput
- Use
e.key === '',''
en la condiciónif
Aquí está el JSFIDDLE trabajo
Simplemente return false
si se presiona una coma:
class HomeComponent {
@ViewChild(''elem'') public element;
clearInput(e: KeyboardEvent) {
if (e.keyCode === 44) {
this.element.nativeElement.value = '''';
return false;
} else {
console.log(''Not a comma'');
}
}
}