2012-02-03 14 views
0

テキストボックスのOnKeyPressイベントで発生するJavaScript関数を作成しました。 基本的に、関数が呼び出されると、caps lockが有効であることをユーザーに知らせるラベルが表示されます。下のメソッドからわかるように、Caps Lockがオンの場合、3つのラベルが表示されますが、渡されたパラメータを使用して、どのテキストボックスがイベントを発生させたかを調べて、キャップのロックラベルの1つのみを表示します。任意のアイデアJavaScriptイベントを発生させたASP.NETコントロールを確認しますか?

私のJScript関数は、以下の呼び出しtextboxsの一つで以下の通りです:

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

おかげ

+1

であるためにあなたの機能を変更するには、あなたの機能に 'これ' を渡すことができますか?例えばonkeypress = "capLock(this、event)"関数を関数capLock(送信者、e){ –

+0

に変更してください}これはほとんど試しましたが、送信者パラメータからコントロール名を取得するにはどうすればいいですか?私は以下を試しました:if(sender.id == "txtCurrentPassword"){alert( "Run my code"); }。しかし、sender.idはtxtCurrentPasswordコントロールのフルパスを返します。例えばtabContainerMain_tabMain_txtCurrentPassword } – user1131661

答えて

1

[OK]を使用していますモードはあなたがいない名前付けコンテナの試みとして、ページでそれらを指定して、それらを置く、これはIDを放出する、かなり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

であるかの内訳を参照してください

ClientIdMode="Static" 

を使用しています。

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

onkeypress="capLock(this, event)" 

function capLock(sender, e) { 
+0

ありがとうございます。しかし、私のすべてのコンボは今や異なって描かれていますか?コンボアイテムを表示するために使用されている下向きの矢印は、もはやホワイトボックスに置き換えられているようです。 – user1131661

+0

:o私はあなたのCSSを見ていますが、これはそれを変えるべきではありません。 –

+0

YESSSSSSSSSSSS !!!どうもありがとうございます。それはすべて正常に動作しています。あなたが別の質問をすると、まだ誰もまだ答えていない別の質問を投稿しました。検索:ValidationSummaryコントロールのASP.Net垂直スペーシング。再度、感謝します。 – user1131661

関連する問題