Heim > Fragen und Antworten > Hauptteil
我想通过JS来禁用键盘按下的减号。也就是按减号的时候我return false;
但是问题来了。英文减号被我禁掉了,中文减号还是会写进去。这是我很不解的。
$(document).on("keydown",'.floatNumber ',function(e){
var keynum;
if(window.event) // IE
{
keynum = e.keyCode
}
else if(e.which) // Netscape/Firefox/Opera
{
keynum = e.which
}
//229为中文减号,189为英文减号
if(keynum==229||keynum==189){
return false
}
})
跪求大神解决这个问题。输入框里面按中英文的减号都不让它输入
大家讲道理2017-04-11 12:37:19
这是因为对于一些键盘语言有一个占位符的概念,就像你在打中文字。我做了一个GIF动画,你会看更明白。
可以看出 229
并非所谓中文减号,只是一个在非一些键盘语言上的占位符倒置的值,而且这个值好像在不同浏览器上是不一样的。
但是在输入中文减号时为什么没有显示占位符,那是因为“太快了”,中文的减号在录入过程中也是占位的。
我认为可以考虑使用正则,比如:
$(document).on("keydown",'.floatNumber ',function(e){
let el = $(this);
el.val(el.val().replace(/[^.0-9]+/g, ''));
})