两个input框,对其中一个输入框监听keydown事件,将其值赋给给另一个框,但是值总是差一位,用keyup事件没有问题
<div class="test">
<input class="test1" type="text" name="test1">
<input class="test2" type="text" name="test2">
</div>
<script type="text/javascript">
var test1 = document.getElementsByClassName('test1')[0];
var test2 = document.getElementsByClassName('test2')[0];
test1.addEventListener('keydown', function(e) {
test2.value = e.target.value;
})
</script>
keydown事件触发在文字还没敲进文本框,这时如果在keydown事件中输出文本框中的文本,得到的是触发键盘事件前的文本,而keyup事件触发时全部键盘事件的操作已完成,获得的是触发键盘事件后的文本。关于输入框发生的事件流程依次为focus、keydown、input、keyup、change与blur。
查看了别人的文章,贴出他们的链接吧链接1链接2