web-dev-qa-db-ja.com

特定のボタンにデフォルトの「Enter」を設定する方法

ContentPageにテキストボックスがあります。ユーザーがそのテキストボックスでEnterキーを押すと、このContentPageで[送信]ボタンを起動しようとしています。特定のボタンのイベントを発生させたいです。

代わりに、MasterPageのページ上部に検索テキストボックスとボタンがあり、この検索ボタンのイベントが発生します。

MasterPageの検索ボタンではなく、このContentPageの送信ボタンを起動するように制御するにはどうすればよいですか?

コンテンツ管理にEktron CMSを使用しています。

75
Ron

最も簡単な方法は、フィールドとボタンをパネル内に配置し、デフォルトのボタンを入力時にアクティブにするボタンに設定することです。

<asp:Panel ID="p" runat="server" DefaultButton="myButton">
  <%-- Text boxes here --%>
  <asp:Button ID="myButton" runat="server" />
</asp:Panel>
93
Kirk

コードから実行する必要がある場合は、

Me.Form.DefaultButton = Me.btn.UniqueID

btnはボタンコントロールです。

33
Lester

サーバー側の DefaultButton コントロールまたは form コントロールのいずれかでPanelプロパティを使用できます。あなたの場合、同じボタンを起動するPanelにコントロールをグループ化します:

<asp:Panel ID="SearchBox" runat="server" DefaultButton="BtnSearch">
    ...
    <asp:Button ID="BtnSearch" runat="server" Text="Search!" />
</asp:Panel>
....
<asp:Panel ID="UserPanel" runat="server" DefaultButton="BtnUserSubmit">
    ...
    <asp:Button ID="BtnUserSubmit" runat="server" Text="Submit" />
</asp:Panel>
15
mellamokb

UseSubmitBehaviorプロパティを使用して、送信時にヒットしないボタンをすべて無効にできるようになりました(詳細についてはドキュメントをご覧ください)

    <asp:Button ID="BtnNotToFIre" runat="server" Text="Search" UseSubmitBehavior="false" />
5
adinas
$(document).ready(function(){
    document.getElementById("text_box_id")
    .addEventListener("keyup", function(event) {
    event.preventDefault();
    if (event.keyCode === 13) {
        document.getElementById("button_id").click();
    }
    });
});
0
JavaGeek

マイクロソフトは言う:

<form id="Form1"
    defaultbutton="SubmitButton"
    defaultfocus="TextBox1"
    runat="server">

ここにリンクの説明を入力

0
VolkanCetinkaya