我试图在一定数量的字符后自动跳到第二行。我正在使用jquery中的keypress函数来执行此操作。这里是我的代码:jquery keypress函数在不同浏览器的不同时间触发
<html>
<head>
<script type="text/javascript" src="http://inet.website-name.com/jquery/jquery-1.7.min.js"></script>
</head>
<body>
<input id="input1"></input>
<br />
<input id="input2"></input>
<script type="text/javascript">
$('#input1').keypress(function (e) {
var tval = $('#input1').val();
if (tval.length >= 5 && e.which !== 0 && e.charCode !== 0) {
$('#input2').focus();
}
})
</script>
</body>
</html>
时,这是在Chrome运行6个字符是在第一个框中,然后焦点切换到第二个框中键入我遇到的问题是。当它在Internet Explorer中运行时,首先将焦点更改为第二个框,然后键入第6个字符。我需要它在两个浏览器中具有相同的行为。
我试过使用keydown事件,并且始终如一地改变焦点,但即使使用退格键,箭头键或任何其他特殊键,焦点也会改变。
在此先感谢。
是否缺少e.preventDefault();在将焦点设置到下一个控件之前? – Sunny
@ 3nigma - 我的错误 - 它是e.preventDefault();编辑我的评论。 – Sunny
这非常有帮助,但我仍然需要在第二个框中输入字符。我将如何重新发送该事件或发送输入的字符? – L3tha1Am6iti0n