DNN:使用Enter键提交搜索

时间:2012-07-25 03:12:44

标签: search dotnetnuke

在DotNetNuke中,当用户点击进入或返回时如何使搜索输入框“搜索”?标记看起来像这样:

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

有一个按钮,它在点击时有效,但客户端正在请求按键输入键盘做同样的事情。搜索功能正常工作,我担心打破它试图实现此功能。

我正在回填一名不经通知而辞职的员工。我是一名平面设计师,但对ASP.NET MVC有一定的了解。我没有DNN的经验,尝试阅读他们网站上的文档,但它似乎是用另一种语言编写的。我希望有人可以用非专业人士的英语向我解释。

谢谢!

PS - 我检查了这个帖子;没有帮助:Submit Search on Enter Key?

3 个答案:

答案 0 :(得分:5)

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

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

将其放在PageLoad或PreInit等中

这不是MVC的答案,那些已经在这个帖子中,并且控件必须是标准的webforms样式控件,其中包含runat =“server”等。

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

感谢。

答案 1 :(得分:2)

jsFiddle link

基本上在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');
  }

});

答案 2 :(得分: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:panel具有DefaultButton属性可以解决问题。