0

ASP.NET 1.1 Web アプリケーションを継承しました。

ページには、さまざまなボタン、テキストボックス、およびその他のコントロールがあります。パスワードテキストボックスとパスワードボタンもあります。ユーザーがパスワードを入力して Enter キーを押した場合 (テキスト ボックスにフォーカスがあるときに)、コード ビハインドのbtnPasswordクリック イベント ハンドラーを開始する必要があります。

これは、この機能を提供するはずの 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>

パスワード ボタンをマウスでクリックすると、パスワードが無効な場合にエラー メッセージが表示されます。正解です。フォーカスがパスワード テキスト ボックスにあるときに [Enter] をクリックすると、別の結果が得られます。クリック イベント ハンドラーで発生し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>
4

2 に答える 2

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;
           }
      }
 }

于 2012-12-03T11:49:59.853 に答える
0

onkeypressイベントにリターンを追加する必要がありました。

<INPUT id="txtPassword" runat="server" type="password" NAME="txtPassword" onkeypress="return kPress(event, 'btnPassword');">
于 2012-12-07T07:39:42.827 に答える