关注具有属性TextMode=“”的文本框;MultiLine”;按enter键

本文关键字:MultiLine enter 文本 属性 TextMode | 更新日期: 2023-09-27 17:58:47

在ASP网站中,我想使用回车键在文本框之间导航,这样当我按下回车键时,焦点应该转到下一个文本框。

我所做的是在一个文本框中使用按键功能,如下所示

<asp:TextBox ID="Textbox1" runat="server" onkeypress="return EnterEvent(event);"></asp:TextBox>

在javascript中

          function EnterEvent(e) {
              if (e.keyCode == 13) {
                  document.getElementById("Textbox2").focus();
                  }
              }          
</script>

它运行良好。但如果Textbox2是一个多行文本框(如果我对asp文本框使用TextMode="multiline"),那么焦点将放在Textbox2上,但它将在文本框下面多放一行(焦点放在多行文本盒的第二行)。如何解决?

关注具有属性TextMode=“”的文本框;MultiLine”;按enter键

尝试使用此脚本通过控件进行回车键导航。。

<script type = "text/javascript" >
    function pageLoad(sender, args) {
        var inputs = $(':input,select').keydown(function (e) {
            if (e.which == 13) {
                if (e.target.id == '') {
                    return;
                }
                e.preventDefault();
                var nextInput = inputs.get(inputs.index(this) + 1);
                if (nextInput) {
                    nextInput.focus();
                    nextInput.select();
                }
            }
        });
    }
</script>

如果上面的脚本不适合您的情况,您可以尝试将onkeypress更改为onkeydown。。你可以使用take中的任何一种情况,而不是同时使用两种情况。。

<asp:TextBox ID="Textbox1" runat="server" onkeydown="return EnterEvent(event);"></asp:TextBox>

您可以通过参考下面的链接来理解keydown和keypress之间的区别。。

Keypress和keydown之间的区别。。。