0

我继承了一个 ASP.NET 1.1 Web 应用程序。

页面上有各种按钮、文本框和其他控件。还有一个密码文本框和密码按钮。如果用户输入密码并按下回车键(焦点在文本框中),那么我需要它来启动btnPasswordclick 事件处理程序背后的代码。

这是我应该为我提供此功能的 JavaScript:

<script language="javascript" type="text/javascript">
     function kPress(e, buttonId) {
          var evt = e ? e : window.event;
          var bt = document.getElementById(buttonId);

          if (bt) {
               if (evt.keyCode == 13) {
                    bt.click();
                    return false;
               }
          }
     }
</script>

用鼠标单击密码按钮时,如果密码无效,则会显示错误消息。这是对的。如果我在焦点位于密码文本框上时单击 Enter,那么我会得到不同的结果。它确实在btnPassword单击事件处理程序上进行,但是看起来好像页面会自行重置,并且看起来就像页面第一次加载时一样。

上面的 JavaScript 代码是否与用鼠标物理单击按钮时相同?如果不是,我需要如何更改它才能获得类似的功能?

这是我的标记:

<INPUT id="txtPassword" runat="server" type="password" NAME="txtPassword" onkeypress="kPress(event, 'btnPassword');">
<asp:button id="btnPassword" runat="server" Text="OK" CssClass="buttonDefault"></asp:button>
4

2 回答 2

1
<script language="javascript" type="text/javascript">
 function kPress(e, buttonId) {
      var evt = e ? e : window.event;
      var bt = document.getElementById(buttonId);

      if (bt) {
           if (evt.keyCode == 13) {
               evt.cancelBubble = true; 
               evt.returnValue = false;
               //if browser not ie evt.preventDefault();
                bt.click();
                return false;
           }
      }
 }

于 2012-12-03T11:49:59.853 回答
0

我只需要添加一个返回到 onkeypress 事件:

<INPUT id="txtPassword" runat="server" type="password" NAME="txtPassword" onkeypress="return kPress(event, 'btnPassword');">
于 2012-12-07T07:39:42.827 回答