【发布时间】:2012-02-03 12:06:10
【问题描述】:
我创建了一个在文本框的 OnKeyPress 事件上触发的 JavaScript 函数。 基本上,当调用该函数时,会显示一个标签,告诉用户大写锁定已启用。从下面的方法可以看出,如果 Caps Lock 位于 3 个标签上,则会显示 3 个标签,但我想使用传入的参数来找出哪个文本框触发了事件,以便我只显示一个 caps lock 标签。任何想法
我的 JScript 函数在下面,下面是调用文本框之一:
function capLock(e) {
kc = e.keyCode ? e.keyCode : e.which;
sk = e.shiftKey ? e.shiftKey : ((kc == 16) ? true : false);
if (((kc >= 65 && kc <= 90) && !sk) || ((kc >= 97 && kc <= 122) && sk))
document.getElementById('divCurrentPasswordCapsLockStatus').style.visibility = 'visible';
document.getElementById('divNewPasswordCapsLockStatus').style.visibility = 'visible';
document.getElementById('divConfirmPasswordCapsLockStatus').style.visibility = 'visible';
else
document.getElementById('divCurrentPasswordCapsLockStatus').style.visibility = 'hidden';
document.getElementById('divNewPasswordCapsLockStatus').style.visibility = 'hidden';
document.getElementById('divConfirmPasswordCapsLockStatus').style.visibility = 'hidden';
}
<asp:TextBox ID="txtCurrentPassword" runat="server" TextMode="Password" CssClass="customtxt" onkeypress="capLock(event)"></asp:TextBox>
所以我想用 JScript 函数做如下的事情:
if (e.name=="txtCurrentPassword")
{
document.getElementById('divCurrentPasswordCapsLockStatus').style.visibility ='visible';
}
else
{
document.getElementById('divNewPasswordCapsLockStatus').style.visibility = 'hidden';
document.getElementById('divConfirmPasswordCapsLockStatus').style.visibility = 'hidden';
}
我正在使用 ASP.Net 4.0
谢谢
【问题讨论】:
-
你能把'this'传递给你的函数吗?例如onkeypress="capLock(this, event)" 并将您的功能更改为 function capLock(sender, e) {
-
差不多,我已经尝试过了,但是如何从 sender 参数中获取控件名称。我尝试了以下方法: if (sender.id == "txtCurrentPassword") { alert("Run my Code"); }。但是 sender.id 返回 txtCurrentPassword 控件的完整路径。例如tabContainerMain_tabMain_txtCurrentPassword }
标签: javascript asp.net events onkeypress capslock