2017-06-07 271 views
0

因此,我正在開發我的網站的搜索功能,並且我想將用戶重定向到他正試圖搜索的關鍵字的頁面。用輸入鍵搜索關鍵字 - BUG

下面的代碼工作,但有一個錯誤:當我點擊輸入在我的主頁它的作品。用戶被成功重定向到我的搜索頁面並顯示結果。但是當我在該頁面(或任何其他頁面)時,回車鍵不起作用!只有按鈕一直工作!這是一個奇怪的錯誤,我不知道該怎麼辦...

此代碼是在我的母版(.net 4.0),它是我所有的webforms(包括家庭)的父母。誰能幫我?

<asp:TextBox ID="TBPesquisa" runat="server" placeholder="Pesquise produtos aqui" onkeypress="return runScript(event)"></asp:TextBox> 
 

 
<button id="BTPesquisa" class="button-search" type="button" onClick="javascript:window.location.assign('/Pesquisa?val='+encodeURIComponent(document.getElementById('TBPesquisa').value));">Pesquisar</button> 
 
           
 
<script> 
 
    function runScript(e) { 
 
    if (e.keyCode == 13) { 
 
     $("#BTPesquisa").click(); 
 
    } 
 
    } 
 
</script>

+0

之外,你有任何機會,其他腳本被稱爲runScript? – Icepickle

+0

否...此腳本僅用於此處... –

+0

而且沒有其他具有相同名稱的腳本 –

回答

0

也許,原因是TBPesquia場不存在,因爲這是一個asp.net文本框控件,而ID可能不是你希望它是什麼。

現在你既可以去設置ClientID屬性,如:

<asp:TextBox ID="TBPesquisa" ClientID="TBPesquisa" runat="server" placeholder="Pesquise produtos aqui" onkeypress="return runScript(event)"></asp:TextBox> 

,或者你可以稍微重寫你的處理程序,通過執行以下操作

<asp:TextBox ID="TBPesquisa" runat="server" placeholder="Pesquise produtos aqui" onkeypress="runScript(event)"></asp:TextBox> 

,改變的runScript到:

function runScript(e) { 
    var source = e.target; 
    if (e.keyCode === 13) { 
    searchFor(source.value); 
    e.preventDefault(); 
    } 
} 

function searchFor(textValue) { 
    window.location.assign('/Pesquisa?val=' + encodeURIComponent(textValue)); 
} 

我會順便說一句,而不是把代碼搜索外o f搜索按鈕本身,只有在你的HTML元素

+0

非常感謝您的幫助!我會這樣做的! :) –