Javascript 带有location.href的按钮不';我不能在Firefox中工作
我有一个用于搜索的文本框和一个重定向到文本框给定值的按钮。除了Firefox3,它工作得很好,Firefox3完全忽略了这个功能。你知道为什么以及如何修复它吗?我已经尝试了window.location而不是location.href,但它在除firefox之外的所有主流浏览器中都运行良好 我的代码:Javascript 带有location.href的按钮不';我不能在Firefox中工作,javascript,asp.net-mvc,firefox,Javascript,Asp.net Mvc,Firefox,我有一个用于搜索的文本框和一个重定向到文本框给定值的按钮。除了Firefox3,它工作得很好,Firefox3完全忽略了这个功能。你知道为什么以及如何修复它吗?我已经尝试了window.location而不是location.href,但它在除firefox之外的所有主流浏览器中都运行良好 我的代码: <%=Html.TextBox("search", Html.Encode(ViewData["search"])) %> <input type="button" on
<%=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" />
我不确定为什么您的代码在FF3中不起作用,但我通过将域添加到URL的开头以及删除前导斜杠使其起作用 因此,如果您可以在该位置添加域或使用相对路径,那么它应该可以工作。例如,生成的行可能如下所示:
search.value
正在查找名为“search”的JavaScript变量,而不是表单字段
您应该使用document.getElementById('search')。value
<%=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" />
您应该发布实际生成的HTML代码,除了ASP.NET代码在我的测试中,我发现search.value在Firefox和IE中返回了预期值。您的原始HTML在FF3.5中工作,但它在控制台上也产生了一条明确的错误消息:警告:全局范围中ID/NAME引用的元素。改用W3C标准文档.getElementById()。源文件:file:///tmp/tst.html 我首先要修复非标准javascript(不管它在测试中是否有效,它仍然需要清理。现在是2010年,我们仍然在收获“好处”受IE 6和早期Netscape浏览器的影响,这些浏览器接受了破碎的html,但仍然产生了一代设计师,他们通过他们破碎的垃圾是正确的。我也想到了这一点,但我希望能够将其放在不同的域中,而不必重构所有Apearence。谢谢。