在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?
答案 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)
基本上在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
属性可以解决问题。