【问题标题】:DNN: Submit search with Enter keyDNN:使用 Enter 键提交搜索
【发布时间】:2013-04-15 18:02:25
【问题描述】:

在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 - 我检查了这个线程;没有帮助:Submit Search on Enter Key?

【问题讨论】:

标签: search dotnetnuke


【解决方案1】:

我知道我参加聚会有点晚了,但我偶然发现了这个问题,并且有一个特定的 DNN 答案。

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

将其放在 PageLoad 或 PreInit 等中。

这不是 MVC 答案,那些已经在这个线程中,并且控件必须是带有 runat="server" 等的标准 webforms 样式控件。

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

谢谢。

【讨论】:

    【解决方案2】:

    jsFiddle link

    基本上你想在 keydown 上检查 keycode 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');
      }
    
    });
    

    ​

    【讨论】:

      【解决方案3】:

      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:panel 具有 DefaultButton 属性,它可以解决问题。

      【讨论】:

      • 他正在使用 MVC,它没有面板或任何东西:/(虽然它在其他方面都更好,但我认为 MVC 会幸存下来哈哈)
      • 其实项目使用的是DotNetNuke,我完全不熟悉。
      • DotNetNuke 模块开发中使用 asp.net MVC 并不常见。但是,是的,javascript 解决方案也有效
      • 不幸的是,DefaultButton 属性不适用于 LinkBut​​tons,只有真正的按钮。此外,OP 的问题似乎没有回发 (&lt;a href="#"&gt;...&lt;/a&gt;),所以这也无济于事
      猜你喜欢
      • 2011-11-05
      • 1970-01-01
      • 2011-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-25
      • 2014-04-04
      • 2014-03-11
      相关资源
      最近更新 更多