限制输入字段中的字符

当用户在输入字段中键入时,是否有任何选项可以使用此代码而不显示字母或字符? 这是我已经尝试过的代码,我想保留它,但是现在当我在输入中编写受限制的字符时,它会显示它们。我需要将输入留空

编辑:我不想更改代码,因为这在平板电脑上工作得很好(其他限制字符函数不会)。 唯一的问题是你按下受限制的字符会延迟

码:

function checkInput(ob){ var invalidChars = /[^0-9]/gi if(invalidChars.test(ob.value)) { ob.value = ob.value.replace(invalidChars,""); } }; 

HTML:

  

你可以试试这个,

 $('.input').keyup(function () { if (!this.value.match(/[0-9]/)) { this.value = this.value.replace(/[^0-9]/g, ''); } }); 

看看这个有趣的演示

更新 :

你可以尝试这个代码,

 $(document).ready(function() { $(".input").keydown(function (e) { // Allow: backspace, delete, tab, escape and enter if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110]) !== -1 || // Allow: Ctrl+A (e.keyCode == 65 && e.ctrlKey === true) || // Allow: home, end, left, right (e.keyCode >= 35 && e.keyCode <= 39)) { // let it happen, don't do anything return; } // Ensure that it is a number and stop the keypress if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) { e.preventDefault(); } }); }); 

资源

看到更新的FIDDLE演示

更新为安卓:

   

我认为它可以帮助你…使用android:inputType="number"你可以做到这一点。

按键和粘贴事件的组合可以解决问题:

 var text = document.getElementById('text'); text.onkeypress = text.onpaste = checkInput; function checkInput(e) { var e = e || event; var char = e.type == 'keypress' ? String.fromCharCode(e.keyCode || e.which) : (e.clipboardData || window.clipboardData).getData('Text'); if (/[^\d]/gi.test(char)) { return false; } } 
  

这是一个你可以尝试的小黑客: DEMO

它的作用是将每个输入文本的颜色设置为白色,然后根据您的要求将其更改为黑色。 如果您可以忍受输入有效字符时出现的延迟。

 function checkInput(ob) { var invalidChars = /[^0-9]/gi if (invalidChars.test(ob.value)) { ob.value = ob.value.replace(invalidChars, ""); } else { document.getElementById('yourinput').style.color = '#000'; } }; function hideInput(ob) { document.getElementById('yourinput').style.color = '#FFF'; }; 

HTML

  

CSS

 input {color:#FFF;} 
   

我想出了一些略有不同的东西。 oninput而不是onkeyup / onkeydown,而onchange而不是onpaste。

检查此代码,

 $('.input').keypress(function(e) { var a = []; var k = e.which; for (i = 48; i < 58; i++) a.push(i); if (!(a.indexOf(k)>=0)) e.preventDefault(); });