关于js联动计算的一些想法,希望讨论下。
时间:2011-11-20
来源:互联网
最近在做一个js页面联动的控件,目标很简单,就是在一个input里输入数字(只能是数字),然后在和其他的页面元素进行计算,并把结果放置到第三个页面元素里,举个例子:
col1 col2 col3 result
1 2 [ ](a) 3
10 20 [ ](b) 30
比如我在(a)里面输入3之后,result就变成6,(a)什么都不输入的话,默认的就是col1和col2的和。
对于(b)同理。
但是要求(a)和(b)可以输入形如:
123 (一百二十三)
.123 (零点一二三)
1.23 (一点二三)
123. (一百二十三)
-123 (负 一百二十三)
-.123(负 零点一二三)
-1.23(负 一点二三)
-123.(负 一百二十三)
形式的数字(我试过,这些数字的isNaN都是false)。
我是想在 (a)(b) 里边输入边计算,比如我想在(a)里输入10,按键顺序是先按数字1,再按数字0,这两步在resule中显示的结果应该是4,然后是13。
我是用keydown和keyup事件做的,在用户按下(keydown)一个数字键的时候我就把(a)里之前的数字记录到一个临时变量里,当keyup的时候,检查输入框里的是不是数字,如果是数字,则和最后一列result计算,否则用之前临时变量里的值替换input的value。
但是这样遇到一个问题,用户可以按着一个数字键不放手,或者是按着backspace键不放手,这就导致我的result计算结果出问题。
找了好久都没有想到好办法,希望来这里和大家讨论下,看看有没有更好的实现方法。
col1 col2 col3 result
1 2 [ ](a) 3
10 20 [ ](b) 30
比如我在(a)里面输入3之后,result就变成6,(a)什么都不输入的话,默认的就是col1和col2的和。
对于(b)同理。
但是要求(a)和(b)可以输入形如:
123 (一百二十三)
.123 (零点一二三)
1.23 (一点二三)
123. (一百二十三)
-123 (负 一百二十三)
-.123(负 零点一二三)
-1.23(负 一点二三)
-123.(负 一百二十三)
形式的数字(我试过,这些数字的isNaN都是false)。
我是想在 (a)(b) 里边输入边计算,比如我想在(a)里输入10,按键顺序是先按数字1,再按数字0,这两步在resule中显示的结果应该是4,然后是13。
我是用keydown和keyup事件做的,在用户按下(keydown)一个数字键的时候我就把(a)里之前的数字记录到一个临时变量里,当keyup的时候,检查输入框里的是不是数字,如果是数字,则和最后一列result计算,否则用之前临时变量里的值替换input的value。
但是这样遇到一个问题,用户可以按着一个数字键不放手,或者是按着backspace键不放手,这就导致我的result计算结果出问题。
找了好久都没有想到好办法,希望来这里和大家讨论下,看看有没有更好的实现方法。
作者: fortin1001 发布时间: 2011-11-20
把onkeydown写在onkeypress中,并且
JScript code
JScript code
if(8==keycode){ event.preventDefault(); }
作者: p2227 发布时间: 2011-11-20
噢想起这样就按不了backspace了,还是有问题
作者: p2227 发布时间: 2011-11-20
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28