2012-02-11 116 views
1

我一直在這段代碼的大約一小時(鍵入代碼後)的更好的部分,試圖找出爲什麼我的腳本doSearch()命令doesn'你想激活。任何幫助你們可以提供將不勝感激。我試圖通過onClick激活doSearch()通過onClick

這裏的腳本我有:

<script type="text/javascript"> 
/* <![CDATA[ */ 
    function doSearch() { 
     var selectedItem = document.searchForm.engines 
      .selectedIndex; 
     if (selectedItem == -1) 
      window.alert("You must select a 
       search engine."); 
     else 
      location.href = document.searchForm.engines 
       .option[selectedItem].value 
       + document.searchForm.searchTerm.value; 
    } 
/* ]]> */ 
</script> 

...這裏是按鈕命令我有:

<input type = "button" value="Search" 
    onclick = "doSearch()" /></p> 

有什麼我錯過了什麼? :/

+0

需要澄清。您是否在頁面上收到任何JavasScript錯誤?你確定doSearch函數沒有被調用嗎? – 2012-02-11 22:22:17

+0

就是這樣......沒有任何東西可以表明存在任何形式的錯誤。我真的不知道doSearch是否被調用,因爲我點擊它時創建的(據推測)鏈接到doSearch函數的搜索按鈕什麼也不做。這讓我困惑不已。 – 2012-02-11 22:32:42

+0

那麼,有很多好的Javascript調試器可以幫助,但我不知道你的安裝/測試環境是什麼。低級別的測試方法是添加警報作爲doSearch的第一行。這樣你至少知道函數是否被調用,如果是的話調試內部代碼。 – 2012-02-12 02:33:57

回答

2

是的。你錯過了返回false;在你的onclick事件

<input type = "button" value="Search" 
onclick = "doSearch();return false" /></p> 

沒有它,形式已經提交,而不是

你也需要逃避新線在你的警報

所以

window.alert("You must select a 
      search engine."); 

成爲

window.alert("You must select a\ 
      search engine."); 
+0

修復了這些問題,但該按鈕仍然不會將我帶到搜索引擎。還要別的嗎? – 2012-02-11 22:01:43

+0

@Matt所以你最後一行可能是錯的。嘗試調試/提醒它的結果 – 2012-02-11 22:36:14

+0

有一個更新:我終於設法讓搜索按鈕的工作...現在的問題是,它將只是去搜索引擎的頁面,並且我試圖搜索的值沒有結轉。另外,當我不在搜索欄上輸入任何內容時,我的window.alert不會出現。 – 2012-02-12 00:21:15