0

テキスト ボックスの OnKeyPress イベントで起動する JavaScript 関数を作成しました。基本的に、関数が呼び出されると、Caps Lock が有効になっていることをユーザーに知らせるラベルが表示されます。以下のメソッドからわかるように、Caps Lock がオンになっている場合は 3 つのラベルが表示されますが、渡されたパラメーターを使用してイベントを発生させたテキスト ボックスを見つけ、Caps Lock ラベルの 1 つだけを表示したいと思います。何か案は

私の JScript 関数は以下にあり、その下に呼び出しテキストボックスの 1 つがあります。

    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 を使用しています

ありがとう

4

1 に答える 1

1

わかりましたので、使用する必要があります

ClientIdMode="Static"

モードの内訳を参照してください http://weblogs.asp.net/scottgu/archive/2010/03/30/cleaner-html-markup-with-asp-net-4-web-forms-client-ids- vs-2010-and-net-4-0-series.aspx

ほとんどの場合、名前付けコンテナーが試みて配置するのではなく、ページで指定したとおりに ID を発行します。

次に、「this」を関数に渡すことができますか? 例えば

onkeypress="capLock(this, event)" 

関数を次のように変更します

function capLock(sender, e) {
于 2012-02-03T13:00:17.003 に答える