4 回答
TA贡献1842条经验 获得超21个赞
<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(); }}
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) )">
添加回答
举报