我的代码<input type="text" name="hit_value" value="" onkeyup="this.value=this.value.replace(/[^0-9\.]/,'')">
这样的话,如果我是用键盘逐个字符输入时能消除非数字符号,但是如果我按着某个键一段时间,就能输入一串相同的字符,这个bug该怎么处理javascript只能输入数字

解决方案 »

  1.   

    这样也可以<input type="text" name="hit_value" value="" onkeyup="this.value=this.value.replace(/[^0-9\.]/,'')" onkeydown="this.value=this.value.replace(/[^0-9\.]/,'')">
      

  2.   

    keyup  和 keydown事件上 做正则
      

  3.   

    變態一點的話keydown, keyup, focus, blur, onpropertychange/oninput 都給我搞上
      

  4.   

    正解,没有全局只替换最后一次。<input type="text" name="hit_value" value="" onkeyup="this.value=this.value.replace(/[^\d\.]/g,'')">