1

私の質問は、Enter キーの押下の処理に関するものです。マスター ページ内にある「order.aspx」というページが 1 つあります。ここでは、制御構造について説明しています。

1. <asp:TextBox ID="txtSearch" MaxLength="50" runat="server" Width="420px" CssClass="txtbox"></asp:TextBox>

2. <asp:Button ID="btnSearch" runat="server" OnClick="btnSearch_Click" />

3. one asp grid control with one column containing textbox for entering order quantity 

4. <asp:Button ID="btnOrder" runat="server" OnClick="btnOrder_Click" />.

私の要件は、

  1. ユーザーが検索テキストボックスにテキストを入力してEnterキーを押すと、btnSearch_Clickが起動します
  2. ユーザーがグリッド テキスト ボックスに数量を入力して Enter キーを押すと、btnOrder_Click が起動します。

別のコードで試してみましたが、最終的に答えが得られましたが、完全には機能していません。

function DoEnterKeyButtonClick(buttonId) {
     e = event;
     var code = (e.keyCode ? e.keyCode : e.which);
     if (code == 13) {
         document.getElementById('ctl00_CphMaster_' + buttonId).click();
         return false;
     }
}

txtSearch とグリッド テキスト ボックスのキーを押してこのメ​​ソッドを呼び出し、ボタン ID を渡してイベント btnSearch と btnOrder をそれぞれ発生させます。検索テキスト ボックスにテキストを入力して Enter キーを押すと、btnSearch_Click が起動し、入力時に注文数量とEnterキーを押すとbtnOrder_Clickが起動します.しかし、問題は、ページインデックスを変更した後、2ページ目と言うと、必要な機能が機能しないことです.つまり、注文数量を入力してEnterキーを押すと、btnSearch_Clickが最初に起動します. 、次に btnOrder_Click が発射されます。これにより、入力された数量がクリアされ、エラーが発生します。助けてください...

ありがとう、ジョビー

4

3 に答える 3

5

これを与える代わりにdocument.getElementById('ctl00_CphMaster_' + btnSearch).click();

これを試してdocument.getElementById('<%= btnSearch.ClientID %>').click();

またはjqueryを使ってみてください

$("#txtSearch").keyup(function(event){
    if(event.keyCode == 13){
        $("#btnSearch").click();
    }
});

それ以外の場合は、コントロールを asp:panel 内に配置し、以下のように DefaultButton プロパティを btnSearch として設定します。

<asp:Panel ID="Panel1" runat="server" DefaultButton="btnSearch">
    <asp:TextBox ID="txtSearch" MaxLength="50" runat="server" Width="420px" CssClass="txtbox"></asp:TextBox>
    <asp:Button ID="btnSearch" runat="server" OnClick="btnSearch_Click" />
    </asp:Panel>

これが役立つことを願っています。

どうもありがとうアンナ

于 2012-07-30T05:48:46.587 に答える
1

あなたの関数はこれが正確に何であるかさえ知りません。このようにしてみてください

function DoEnterKeyButtonClick(event,buttonId){}
于 2012-07-30T05:09:56.960 に答える
1

次の便利なスニペットを保持しています..

function getIntKey(key) {
    var keycode;
    if (key == null) { keycode = event.keyCode; } else { keycode = key.keyCode; }
    return keycode;
}

そして、このように使用してください..

$("#txtSearch").keyup(function(e){
  if(getIntKey(e) == 13){
     //Enter was pressed, do somthing
  }
});
于 2012-07-30T05:53:39.760 に答える