JavaScript onclick重定向

时间:2012-10-09 14:38:41

标签: javascript onclick

我有这个文本字段和按钮

<input name="txtSearch" type="text" id="txtSearch" class="field" />            
<input type="submit" name="btnSearch" value="" id="btnSearch" class="btn" onclick="javascript:SubmitFrm()" />

当用户点击提交按钮时,此功能假设运行

<script type="text/javascript">
    function SubmitFrm(){
        var Searchtxt = document.getElementById("txtSearch").value();
        window.location = "http://www.example.com/search/?Query=" + Searchtxt;
    }
</script>

但没有任何反应,我期望发生的是当用户点击提交按钮时,从搜索文本框中取值并将用户重定向到网址+搜索文本框的值......

我做错了什么?

5 个答案:

答案 0 :(得分:24)

您的代码中存在以下几个问题:

  • 您正在处理提交按钮的click事件,其默认行为是将请求发布到服务器并重新加载页面。您必须通过从处理程序返回false来禁止此行为:

    onclick="SubmitFrm(); return false;"
    
  • value无法调用,因为它是属性,而不是方法:

    var Searchtxt = document.getElementById("txtSearch").value;
    
  • 您在查询字符串中发送的搜索查询必须为encoded

    window.location = "http://www.mysite.com/search/?Query="
        + encodeURIComponent(Searchtxt);
    

答案 1 :(得分:4)

更改onclick
onclick="javascript:SubmitFrm()"

onclick="SubmitFrm()"

答案 2 :(得分:2)

只做

onclick="SubmitFrm"

只有链接网址才需要javascript:前缀。

答案 3 :(得分:1)

这样做解决了我的问题

<script type="text/javascript">
    function SubmitFrm(){
        var Searchtxt = document.getElementById("txtSearch").value;
        window.location = "http://www.mysite.com/search/?Query=" + Searchtxt;
    }
</script>

我将.value();更改为.value;,取出()

我没有在文字字段中更改任何内容或提交按钮

<input name="txtSearch" type="text" id="txtSearch" class="field" />            
<input type="submit" name="btnSearch" value="" id="btnSearch" class="btn" onclick="javascript:SubmitFrm()" />

像魅力一样。

答案 4 :(得分:0)

从您的代码中删除“javascript:”,它应该有效。

你碰巧使用FireFox吗?我从其他人那里了解到FireFox不再接受'javascript:'字符串。但是,对于我的生活,我找不到原始的来源(虽然我相信它是在FF更新说明中的某处)。