2

在 DotNetNuke 中,如何让搜索输入框在用户敲回车时“搜索”?标记如下所示:

<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" 等的标准 webforms 样式控件。

DNN 6.2 确实引入了服务框架,因此您可以针对它进行更多的 MVC/MVVM 样式编码,但如果您运行的版本低于此,则此代码将派上用场。

谢谢。

于 2012-10-30T21:53:56.413 回答
3

jsFiddle 链接

基本上在 keydown 上,您想检查键码 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:panelhasDefaultButton属性可以解决问题。

于 2012-07-25T04:58:09.547 回答