4 回答

TA貢獻(xiàn)1842條經(jīng)驗 獲得超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貢獻(xiàn)1863條經(jīng)驗 獲得超2個贊
我已經(jīng)很久很努力地想找到一個很好的答案,我們迫切需要<input type="number"但除此之外,這兩種方法是我能想到的最簡潔的方法:
<input type="text"
onkeyup="this.value=this.value.replace(/[^\d]/,'')">
如果您不喜歡在被擦除之前瞬間顯示不被接受的字符,下面的方法是我的解決方案。注意許多附加條件,這是為了避免禁用所有類型的導(dǎo)航和熱鍵。如果有人知道如何壓縮這個,讓我們知道!
<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) )">
添加回答
舉報