1

数百のコントロール、数十のページ、および約 12 のマスターページを含む複雑な Web アプリがあります。ContentPlaceHolders を使用すると、各ページのメイン ボディ内にさまざまなフォーム コンテンツが生成されます。たとえば、あるページではログイン プロンプトが表示され、別のページでは [お気に入りに追加] ボタンが表示されます。

これらすべてのページに共通するのは、検索バーです。検索バーが上部にある場合、Enter キーが押されるたびに Enter キーがキャプチャされます。検索バーをメイン コンテンツの下に移動すると、分離コードと JavaScript を使用して、検索フィールドにフォーカスがある場合にのみ、Enter キーを正しくキャプチャします。

私がやりたいのは、検索バーをページの上部に残しておき、優先順位を下げて、Enter キーが押されたときにデフォルトのボタンがページの 2 番目になるようにすることです。私の目的は、ページの本体に表示される可能性のあるすべてのコントロールに JavaScript を追加しないようにすることです。

ボタンの優先順位を下げて、ページのデフォルト ボタンとして「スキップ」するにはどうすればよいですか?

4

1 に答える 1

3

最善の方法は、別の方法で、必要なボタンをページのデフォルトとして割り当てることです。

<form id="aspnetForm" runat="server">タグを次のように変更します。

<form id="aspnetForm" runat="server" defaultbutton="NameOfTheButtonYouWant>

ユーザーのカーソルがどこにあるかに応じて異なるデフォルトが必要な場合は、関連する領域を<asp:panel>defaultbutton 属性を持つ でラップします。


コメントから更新。

私が持っている他の唯一のアイデアは、実装が難しいかもしれません。HTML5 仕様では、

フォーム所有者がそのフォーム要素であるツリー順序で最初の送信ボタン

がデフォルトです。

そのため、HTML ファイルの下部にあるように検索領域を移動でき、それでも上部に表示される場合は、成功する可能性があります。ただし、これを機能させるには、レイアウトをいじる必要があります。

于 2013-03-20T18:24:32.893 に答える