Javascript onKeyUp事件在用户输入小数后不执行函数
我有一个onKeyUp事件,它调用一个函数,当用户输入3个或更多数字并将值设置为2个小数位时,该函数会插入一个小数位 e、 g.用户类型123-->1.23;用户类型1234-->12.34 这就是功能:Javascript onKeyUp事件在用户输入小数后不执行函数,javascript,Javascript,我有一个onKeyUp事件,它调用一个函数,当用户输入3个或更多数字并将值设置为2个小数位时,该函数会插入一个小数位 e、 g.用户类型123-->1.23;用户类型1234-->12.34 这就是功能: function insertDecimal(x) { if (x.length > 2) { x = x.replace(/[^a-zA-Z 0-9]+/g,''); var xx = x.substring(0,x.length-2) + ".
function insertDecimal(x) {
if (x.length > 2) {
x = x.replace(/[^a-zA-Z 0-9]+/g,'');
var xx = x.substring(0,x.length-2) + "." + x.substring(x.length - 2,x.length);
}
else {
var xx = x;
}
return xx;
}
就目前而言,没关系。但我想在用户手动输入时将小数点设为陷阱。e、 g
每件10.99美元
用户密钥1099得到10.99
每件10.999美元
用户密钥10.999获得10.999
物品是10美元
用户密钥10。得10分
我可以在事件处理程序中捕获用户的小数:
var keycode = event.keyCode;
if (keycode != 110){
insertDecimal(someUserKeyValue);
}
但是,当用户下一次按下一个数字时,函数将返回并执行,这不是我想要的。我不知所措。为什么不将处理程序附加到
onchange
?因此,输入的处理更容易,因为用户已经输入了所需的输入
检查此场景:
用户希望输入100.30,所以他输入了
100.30
。在您的实现中,当用户达到第二个零时,文本框的值将变为10.0
,如果是这样,如果用户的下一个输入是十进制
本身,您将如何实现十进制功能?当然,除非你要求用户只能输入两位数的整数和任意位数的小数(xx.xxxxxx
),否则我必须这样做。看来一定有更好的解决办法。