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


81

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

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

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

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


コンテンツページにパネルがありますか?その場合、デフォルトのボタンを送信として設定できます
V4Vendetta 2011年

V4Vendettaに感謝します、はい、パネルを追加し、デフォルトボタンを送信するように設定することでこれを解決しました
Ron

回答:


99

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

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

このソリューションはjavascriptに依存していることに注意してください。これは、次のようなもの onkeypress="javascript:return WebForm_FireDefaultButton(event, &#39;ctl00_MainContentPlaceHolder_btnSave&#39;)">がページに追加されるためです
R. Schreurs 2015

完璧なソリューション-ありがとうカーク
Sensa 2017年

1
@kirkテキストボックスがボタンの上のどこかにある場合、私は一緒ではないことを意味します。
Jyotish Singh 2017

あなたは置けば@JyotishSinghあなたは同じことを行うことができますTextBoxし、Button同じ範囲内Panel。次に、DefaultButtonプロパティを設定します。
カーク

36

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

Me.Form.DefaultButton = Me.btn.UniqueID

btnボタンコントロールはどこにありますか。


16

この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>

6

UseSubmitBehaviorプロパティを使用して、送信を押したときに起動したくないすべてのボタンを無効にできるようになりました(詳細については、ドキュメントを確認してください)。

    <asp:Button ID="BtnNotToFIre" runat="server" Text="Search" UseSubmitBehavior="false" />

1
絶対スター!これが私に必要なものです!
Stefano Magistri 2017年

また、ページレイアウトで機能しない可能性のある追加のhtml /asp.net要素は必要ありません。
ウォルター

0
$(document).ready(function(){
    document.getElementById("text_box_id")
    .addEventListener("keyup", function(event) {
    event.preventDefault();
    if (event.keyCode === 13) {
        document.getElementById("button_id").click();
    }
    });
});

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.