【发布时间】:2016-10-19 20:44:19
【问题描述】:
我正在使用keypressevent,并且我想在按下一个键后在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>
【问题讨论】:
标签: javascript html keypress