通过按Enter键移动到ASP.Net中的下一个文本框

时间:2011-01-05 17:45:32

标签: javascript asp.net jquery

我有两个文本框和一个Button控件.....在第一个TextBox中,当按下回车键移动到下一个文本框(条形码)时,当我按下Enter条形码文本框时,它会触发按钮点击事件......直到它确定....

但是在点击按钮后发生了什么,即使在条形码文本框中输入它也会重新关注第一个文本框.........但我想让它保持在相同的条形码文本框中以扫描更多的条形码。 / p>

代码如下。

 <script type="text/javascript" 
        src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js">
    </script>

<Head>
<script type="text/javascript">
        $(function() {
            $('input:text:first').focus();
            var $inp = $('input:text');
            $inp.bind('keydown', function(e) {
                //var key = (e.keyCode ? e.keyCode : e.charCode);
                var key = e.which;
                if (key == 13) {
                    e.preventDefault();
                    var nxtIdx = $inp.index(this) + 1;
                    $(":input:text:eq(" + nxtIdx + ")").focus();
                }                
            });
        });
    </script>

</Head>

2 个答案:

答案 0 :(得分:2)

您正在为每个文本框处理keydown

您需要修改选择器以仅处理第一个文本框的keydown

答案 1 :(得分:0)

按钮单击导致回发到服务器并重新加载页面,重新执行您发布的javascript,包括以下行:

$('input:text:first').focus();

将焦点放在第一个文本输入上。

如果没有HTML,我无法提供很多解决方案,但希望了解原因可以指出正确的方向。

相关问题