我继承了一个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>
答案 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');">