ContentPageにテキストボックスがあります。ユーザーがそのテキストボックスでEnterキーを押すと、このContentPageで[送信]ボタンを起動しようとしています。特定のボタンのイベントを発生させたいです。
代わりに、MasterPageのページ上部に検索テキストボックスとボタンがあり、この検索ボタンのイベントが発生します。
MasterPageの検索ボタンではなく、このContentPageの送信ボタンを起動するように制御するにはどうすればよいですか?
コンテンツ管理にEktron CMSを使用しています。
最も簡単な方法は、フィールドとボタンをパネル内に配置し、デフォルトのボタンを入力時にアクティブにするボタンに設定することです。
<asp:Panel ID="p" runat="server" DefaultButton="myButton">
<%-- Text boxes here --%>
<asp:Button ID="myButton" runat="server" />
</asp:Panel>
コードから実行する必要がある場合は、
Me.Form.DefaultButton = Me.btn.UniqueID
btn
はボタンコントロールです。
サーバー側の 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>
UseSubmitBehaviorプロパティを使用して、送信時にヒットしないボタンをすべて無効にできるようになりました(詳細についてはドキュメントをご覧ください)
<asp:Button ID="BtnNotToFIre" runat="server" Text="Search" UseSubmitBehavior="false" />
$(document).ready(function(){
document.getElementById("text_box_id")
.addEventListener("keyup", function(event) {
event.preventDefault();
if (event.keyCode === 13) {
document.getElementById("button_id").click();
}
});
});
マイクロソフトは言う:
<form id="Form1"
defaultbutton="SubmitButton"
defaultfocus="TextBox1"
runat="server">