2010-01-20 24 views
0

我有一個搜索文本框和一個重定向到文本框的給定值的按鈕。除了完全忽略該功能的firefox 3以外,它的效果很好。任何想法爲什麼以及如何解決它?我已經嘗試過window.location而不是location.href,但它在所有主流瀏覽器中都能很好地工作,但是在Firefox中卻很好用。帶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" /> 
+0

你應該張貼實際生成的HTML代碼,除了ASP.NET代碼 – Triptych

回答

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" /> 

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

我不知道爲什麼你的代碼不能在FF3工作,但是我通過將域添加到URL的開頭並刪除了前導斜槓來實現。

因此,如果可以添加域或在該位置使用相對路徑,它應該可以工作。例如,產生線可能是這樣的:

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

+0

我想到的這也是,但我希望能夠把它放在不同的領域,而不必重構所有的愛好。但是,謝謝。 – Trimack

1

search.value正在尋找一個JavaScript變量稱爲「搜索」,不是你的表單字段。

你應該如果你正在使用jQuery使用document.getElementById('search').value

+0

在我的測試中,我發現search.value在Firefox和IE中返回了期望的值。 – Aaron

+1

您的原始html在FF3.5中工作,但它也在控制檯上產生了一個明確的錯誤消息: 警告:元素在全局範圍內由ID/NAME引用。改爲使用W3C標準document.getElementById()。 源文件:file:///tmp/tst.html 我開始修復非標準的javascript(不管它在你的測試中是否有效,它仍然需要清理,現在是2010年,我們還在收穫中IE 6播放的「好處」以及早期的Netscape瀏覽器接受了破解的html,並且仍然產生了一些設計師通過他們破碎的垃圾獲得的結果是正確的。 – SuperMagic