使用location.href的按钮在Firefox中不起作用

时间:2010-01-20 13:50:47

标签: javascript asp.net-mvc firefox

我有一个搜索文本框和一个重定向到文本框给定值的按钮。除了firefox 3之外它很好用,它完全忽略了这个功能。任何想法为什么以及如何解决它?我已经尝试过window.location而不是location.href,但它在所有主流浏览器中都能很好地运行,但是firefox。

我的代码:

<%=Html.TextBox("search", Html.Encode(ViewData["search"])) %>    
<input type="button" onclick="location.href='<%= Url.Content("~/Authorized/Accounts/0/1/") %>'+search.value" value="Search" />

修改

这是生成的代码:

<input id="search" name="search" type="text" value="" /> 
<input type="button" onclick="window.location='/Authorized/Accounts/0/1/'+search.value" value="Search" />

3 个答案:

答案 0 :(得分:1)

search.value正在寻找一个名为“搜索”的JavaScript变量,而不是您的表单字段。

您应该使用document.getElementById('search').value

答案 1 :(得分:1)

<%=Html.TextBox("search", Html.Encode(ViewData["search"])) %>    
<input type="button" onclick="location.href='<%= Url.Content("~/Authorized/Accounts/0/1/") %>'+document.getElementById('search').value;" value="Search" />

如果你正在使用jQuery:

<%=Html.TextBox("search", Html.Encode(ViewData["search"])) %>    
<input type="button" onclick="location.href='<%= Url.Content("~/Authorized/Accounts/0/1/") %>'+$("#search").val();" value="Search" />

答案 2 :(得分:0)

我不确定为什么你的代码在FF3中不起作用,但我通过将域添加到URL的开头并删除前导斜杠来实现它。

因此,如果您可以添加域或在该位置使用相对路径,那么它应该可以工作。例如,生成的行可能如下所示:

<input type="button" onclick="window.location='http://www.example.com/Authorized/Accounts/0/1/'+search.value" value="Search" />