如何使用enter键和鼠标单击按钮获得类似功能

时间:2012-12-03 10:42:26

标签: javascript asp.net .net web-applications javascript-events

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

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

这是我应该给我这个功能的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>

使用鼠标单击密码按钮时,如果密码无效,则会显示错误消息。这是对的。如果我在焦点位于密码文本框时单击“输入”,则会得到不同的结果。它确实在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>

2 个答案:

答案 0 :(得分: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;
           }
      }
 }

答案 1 :(得分:0)

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

<INPUT id="txtPassword" runat="server" type="password" NAME="txtPassword" onkeypress="return kPress(event, 'btnPassword');">