我有一个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) + "." + x.substring(x.length - 2,x.length);
}
else {
var xx = x;
}
return xx;
}
就目前而言,这没关系。但是我想在手动用户输入小数点时捕获小数点。例如
项目是10.99美元 用户密钥1099得到10.99
项目是10.999美元 用户密钥10.999获得10.999
项目是10.00美元 用户密钥10.得到10
我可以在事件处理程序中捕获用户的小数:
var keycode = event.keyCode;
if (keycode != 110){
insertDecimal(someUserKeyValue);
}
但是当用户下次按下一个数字时,该功能会重新启动并执行,这不是我想要的。我不知所措。
答案 0 :(得分:0)
为什么不在onchange
附加处理程序?因此,输入的处理更容易,因为用户已经输入了他想要的输入。
检查这种情况:
用户希望输入100.30,因此他输入了100.30
。在你的实现中,当用户点击第二个零时,文本框的值将变为10.0
,如果发生了什么,如果用户的下一个输入是十进制{{1,那么你将如何实现十进制功能?本身?好吧,除非您当然要求用户只能输入2位数的整数和任意位数作为小数位(.
)