为了账号安全,请及时绑定邮箱和手机立即绑定

HTML文本输入仅允许数字输入

HTML文本输入仅允许数字输入

蓝山帝景 2019-05-30 12:43:31
HTML文本输入仅允许数字输入是否有快速设置HTML文本输入的方法(<input type=text />)只允许数字击键(加上‘.’)?
查看完整描述

4 回答

?
茅侃侃

TA贡献1842条经验 获得超21个赞

使用这个DOM

<input type='text' onkeypress='validate(event)' />

这个剧本

function validate(evt) {
  var theEvent = evt || window.event;

  // Handle paste
  if (theEvent.type === 'paste') {
      key = event.clipboardData.getData('text/plain');
  } else {
  // Handle key press
      var key = theEvent.keyCode || theEvent.which;
      key = String.fromCharCode(key);
  }
  var regex = /[0-9]|\./;
  if( !regex.test(key) ) {
    theEvent.returnValue = false;
    if(theEvent.preventDefault) theEvent.preventDefault();
  }}


查看完整回答
反对 回复 2019-05-30
?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

我已经很久很努力地想找到一个很好的答案,我们迫切需要<input type="number"但除此之外,这两种方法是我能想到的最简洁的方法:


<input type="text" 

       onkeyup="this.value=this.value.replace(/[^\d]/,'')">

如果您不喜欢在被擦除之前瞬间显示不被接受的字符,下面的方法是我的解决方案。注意许多附加条件,这是为了避免禁用所有类型的导航和热键。如果有人知道如何压缩这个,让我们知道!


<input type="text" 

onkeydown="return ( event.ctrlKey || event.altKey 

                    || (47<event.keyCode && event.keyCode<58 && event.shiftKey==false) 

                    || (95<event.keyCode && event.keyCode<106)

                    || (event.keyCode==8) || (event.keyCode==9) 

                    || (event.keyCode>34 && event.keyCode<40) 

                    || (event.keyCode==46) )">


查看完整回答
反对 回复 2019-05-30
  • 4 回答
  • 0 关注
  • 2316 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信