2012-07-25 102 views
2

在DotNetNuke中,當用戶輸入或返回時,如何使搜索輸入框「搜索」?該標記看起來是這樣的:DNN:使用Enter鍵提交搜索

<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

這個問題與解答可以幫助 http://stackoverflow.com/questions/10432692/change-dnn-form-into-normal-get-form/10493074#comment13571411_10493074 – 2012-07-26 04:28:21

回答

2

jsFiddle link

基本上對的keydown你的鍵碼13想檢查(這是回車鍵),然後提交表單/你有什麼邏輯搜索!

$('.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'); 
    } 

}); 

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:panelDefaultButton財產會做的伎倆。

+0

他用MVC哪些不會有面板或任何東西:/(雖然它以其他方式更好,我認爲MVC將生存大聲笑) – 2012-07-25 13:54:24

+0

實際上,該項目使用DotNetNuke,我完全不熟悉。 – user1550364 2012-07-25 14:48:28

+0

在DotNetNuke模塊開發中使用asp.net MVC並不常見。但是,是的,javascript解決方案也可以工作 – 2012-07-26 08:04:41

4

我知道我對派對有點遲到,但是我偶然發現了這個問題,並且有一個特定的DNN答案。

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

將在pageLoad的,或PreInit等

這不是一個MVC的答案,那些已經在這個線程,與對照組必須是標準的web表單樣式的控件與RUNAT = 「服務器」等等。

DNN 6.2的確引入了服務框架,所以你可以對它做更多的MVC/MVVM風格編碼,但是如果你運行的版本低於這個版本,這個代碼將派上用場。

謝謝。