2015-11-07 44 views
2

我試圖調用一個函數,當用戶點擊導航欄搜索按鈕,但它似乎並沒有調用javascript功能,只是加載相同的頁面。我已經看了例子和其他問題,但我沒有看到anyhing錯了..任何幫助將不勝感激,這裏是我的代碼,這是我的Masterpage.aspx:按鈕onclick調用javascript功能不工作

  <div class='navbar-form navbar-left' role='search'> 
        <div class='inputgroup'> 
         <input class='form-control' id='navinput' type='text' placeholder='Search'/> 
         <button class='btn btn-default' type='submit' id='navsearchbtn' runat='server' onclick='NavToSearch();'> 
          <span class='glyphicon glyphicon-search'></span> 
         </button> 
        </div>  
       </div> 

這裏是我的js代碼(也在Masterpage.aspx):我只是測試重定向,看看它是否工作。 (我要實現的代碼中的註釋,請檢查是沒關係,好​​,那我想用輸入要搜索的文本數據庫)

<script type='text/javascript'>     
      function NavToSearch() { 
       window.location.href = 'Search.aspx'; 

         /*var navsearchText = $('$navinput').text(); 

        if (navsearchText == '') 
        { 
         $('$navinput').attr('placeholder', 'Enter Search Text'); 
         return false; 
        } 
        else window.location.href = 'Search.aspx'; */ 
      } 
</script> 

更新後的腳本/功能:

<script type='text/javascript'> 
function NavToSearch() 
       {      
       var navsearchText = $('#navinput').text(); 

       if (navsearchText == '') 
       { 
        $('#navinput').attr('placeholder', 'Enter Search Text'); 
        return false; 
       } 
       else { 
        window.location.href = 'Search.aspx'; 
        //return false; 
       } 

        /*OR 
         $(document).ready(function(){ 
          var url = "OrderHistory.aspx"; 
          $(location).attr('href',url); 
         })*/        
      } 
     </script> 
+0

您從您的按鈕期望做什麼:

您可以通過return false單擊處理程序避免這種情況?提交表單或調用'NavToSearch()'或兩者? –

+0

只是調用/運行功能NavToSearch(),所以我可以使用/保存輸入並重定向到Search.aspx頁面 – user2164182

回答

1

如果youwant只是調用NavToSearch()當按鈕點擊,你必須從submitbutton更改按鈕的類型:

<button class='btn btn-default' type='button' id='navsearchbtn' runat='server' onclick='NavToSearch();'> 
     <span class='glyphicon glyphicon-search'></span> 
</button> 

我n您有您的註釋代碼由#的ID navinput更換$標誌,也.text()通過.val()

$('#navinput').val(); 

相反的:

$('$navinput').text(); 

希望這有助於。

+0

感謝評論的代碼,我試了兩個onclick()和提交(林不知道我是否做正確提交雖然),但我得到了相同的結果,其中當前頁面只是重新加載(即沒有重定向) – user2164182

+0

不客氣,如果你想_Just調用/運行函數NavToSearch()_你必須改變一個按鈕類型爲' buttton'而不是提交檢查我更新的答案。 –

+0

我用#替換了$,它適用於「」輸入並給出了正確的佔位符。但是當文本被添加,我點擊頁面甚至沒有重新加載。有什麼問題? – user2164182

1

聽起來你正在使用Asp.net Web窗體,如果是真的,你的網頁將有form元素,然後用type=submit一個button將觸發表單提交默認情況下,這通常會重定向到您當前的頁面。

  function NavToSearch() { 
      window.location.href = 'Search.aspx'; 

        /*var navsearchText = $('$navinput').text(); 

       if (navsearchText == '') 
       { 
        $('$navinput').attr('placeholder', 'Enter Search Text'); 
       } 
       else window.location.href = 'Search.aspx'; */ 

      return false; //prevent the form submit whatever. 
     }