2

DotNetNuke では、ユーザーが Enter キーまたは Return キーを押したときに、検索入力ボックスを「検索」にするにはどうすればよいですか? マークアップは次のようになります。

<div class="search">
     <input type="text" placeholder="Search..." value="" name="q">
     <a class="button" href="#">Search</a>
</div>

ボタンがあり、クリックすると機能しますが、クライアントはキーボードの Enter キーを押しても同じことを行うように要求しています。検索機能は正常に機能しており、この機能を実装しようとすると壊れてしまうのではないかと心配しています。

予告なしに退職した従業員の埋め戻しをしています。私はグラフィック デザイナーですが、ASP.NET MVC にはある程度精通しています。私は DNN の経験がなく、サイトのドキュメントを読んでみましたが、別の言語で書かれているようでした。誰かがこれを素人の英語で説明してくれることを願っています。

ありがとう!

PS - このスレッドを確認しました。役に立ちませんでした: Enter キーで検索を送信しますか?

4

3 に答える 3

5

私はパーティーに少し遅れていることを知っていますが、この質問に出くわしました.これには特定のDNNの回答があります.

 DotNetNuke.UI.Utilities.ClientAPI.RegisterKeyCapture(txtSearch, btnSearch, 13);

それを PageLoad や PreInit などに配置します。

これは MVC の回答ではありません。これらは既にこのスレッドにあり、コントロールは runat="server" などを使用した標準の Web フォーム スタイル コントロールである必要があります。

DNN 6.2 では Service Framework が導入されているため、それに対してより多くの MVC/MVVM スタイルのコーディングを行うことができますが、それより前のバージョンを実行している場合は、このコードが役立ちます。

ありがとう。

于 2012-10-30T21:53:56.413 に答える
3

jsFiddle リンク

基本的にキーダウンでは、キーコード 13 (Enter ボタン) を確認してから、フォームを送信するか、検索する必要があるロジックを送信します。

$('.search').keydown(function (e) {

  var code = (e.keyCode ? e.keyCode : e.which);
  if (code === 13) { //Enter keycode
     //whatever logic you have for submitting the actual form
     alert('submit hit');
     $('.button').trigger('click');
  }

});

</p>

于 2012-07-25T03:23:49.713 に答える
1

asp.netは、これを簡単に行うためのより良い方法を提供します。

<asp:panel id="pnlSearch" runat="server" cssclass="search" defaultbutton="btnSerach">
     <input type="text" placeholder="Search..." value="" name="q">
     <asp:linkbutton id="btnSerach" cssclass="button">Search</asp:linkbutton>
</div>

トリックを実行するasp:panelhasプロパティに注意してください。DefaultButton

于 2012-07-25T04:58:09.547 に答える