0

最後に操作したコントロールに基づいて、aspx ページで Enter キーを押す動作を変更する必要があります。2 つのテキスト ボックスとドロップダウンがあります。これらの各コントロールには、入力を受け取り、それをページ上の他のフィールドに適用する対応するボタンがあります。マスター パーツにオプションを追加するのとよく似ています。

例: button2 が押された場合、textbox2 のオプションは適用されますが、textbox1 のオプションまたはドロップダウンは適用されません。ページが更新され、ユーザーは引き続きオプションを選択できます。

ユーザーがテキストボックスにテキストを入力できるようにページを変更し、Enter キーを押して対応するボタンのコードをアクティブにするにはどうすればよいでしょうか。ページのデフォルトを設定するためにさまざまな js を試しましたが、その場でこれを変更することに失敗しました。

4

2 に答える 2

1

ASP.Net Panel コントロールの DefaultButton を使用して、Enter キーを受け入れることができます。

http://geekswithblogs.net/ranganh/archive/2006/04/12/74951.aspx

<asp:Panel ID="pnl1" runat="server" defaultbutton="Button1">
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button1" OnClick="Button1_Click" />
</asp:Panel>

<asp:Panel ID="pnl2" runat="server" defaultbutton="Button2">
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:Button ID="Button2" runat="server" Text="Button2" OnClick="Button2_Click" />
</asp:Panel>
于 2013-02-25T21:25:04.243 に答える
0

ユーザーが入力を変更するためのイベント リスナーを設定し、適切なボタンへの参照を設定します。次に、入力ボタンのリスナーを用意して、参照されたボタンの送信をトリガーします。jQuery や JS フレームワークについて言及していないので、一般的にプレーンな JavaScript 用に記述してみます。ただし、クロス ブラウザーのサポートのためにフレームワークを使用することをお勧めします。

var myButtonId = null;

var storeInputButtonId = function(buttonId) {
  return function(event) {
    myButtonId = buttonId;
  };
};

//Do following for inputs, or your preferred event binding pattern
var fld = document.getElementById('myInputId');

//Statically refer to button id or replace with suitable algorithm
var inputButtonId = "";
if (fld.addEventListener) {

  //Could bind to other events with logic based on input element type
  fld.addEventListener('keyup',storeInputButtonId(inputButtonId), false);
}


//Method to trigger the button click event
function submitData(event){

  //Watch for the enter button
  if ( event.which == 13 ){
    document.getElementById(myButtonId).click();
  }
} 

//Bind the listener to the enter button
var bodyElement = document.getElementsByTagName('body')[0];

if (bodyElement.addEventListener) {

  bodyElement.addEventListener('keydown',submitData, false);
}
于 2013-02-25T21:24:19.943 に答える