我使用keypress
event
並且我想在按下鍵後在input
框中獲得value
。我也想捕捉哪個鍵被按下。在this example我只允許用戶輸入數字到input
框(我知道有一個輸入number
type
)。我正在使用setTimeout
從input
框中獲取value
。有沒有更好的方法來完成這一點?這會失敗嗎?使用按鍵和捕捉鍵獲得輸入值
var elTest = document.getElementById('test');
var elResult = document.getElementById('result');
function isNumber(evt, el) {
evt = (evt) ? evt : window.event;
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
evt.preventDefault();
return false;
}
setTimeout(function() {
elResult.textContent = el.value;
}, 0);
return true;
}
elTest.addEventListener('keypress', function(e) {
return isNumber(e, this);
});
<input id='test' />
<div id='result'>
</div>
這並不包括從數值中刪除一個數字的情況,並且當按下退格鍵/刪除鍵時按鍵不會觸發,所以這些鍵不會被阻止。 – dhudson
@dhudson,我沒有試圖解決所有情況,而是試圖讓安東尼走上正確的軌道。一致認爲,使用刪除或退格時,輸入的鍵入功能可以獲取輸入值,並且上述代碼無法解決此問題。 – JeremyS