开发者社区> 问答> 正文

怎样实现

当你输入数字时进行计算,看到一个文本框,如果你输入的是非数字,input什么的都不会显示
(当输入汉字什么都不显示,输入1,马上进行计算,再输入1,进行计算)

展开
收起
杨冬芳 2016-06-17 11:51:31 1700 0
1 条回答
写回答
取消 提交回答
  • IT从业

    这个要分2步走

    控制只能输入数字,捕捉keydown事件,查keycode对照表,只允许数字、小键盘数字、删除、退格,剩下的统统preventDefault
    输入数字后进行计算,捕捉keyup事件,value发生变化,或者满足上一个keydown事件的条件,进行计算逻辑

    要分2步的原因,keydown发生时,新的按键还未使value发生变化,所以不应该进行计算逻辑,而keyup发生时,新的按键已使value发生变化,阻止默认事件已经来不及了,退格、删除什么的也不保险,还有可能进入输入法,问题很多,所以不能在这里过滤keycode

    2019-07-17 19:42:26
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
JAVA反射原理以及一些常见的应用 立即下载
用RxSwift写易维护易读的愉悦代码 立即下载
fibjs 模块重构从回调到协程 立即下载