2012-02-11 121 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