Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带有location.href的按钮不';我不能在Firefox中工作_Javascript_Asp.net Mvc_Firefox - Fatal编程技术网

Javascript 带有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

我有一个用于搜索的文本框和一个重定向到文本框给定值的按钮。除了Firefox3,它工作得很好,Firefox3完全忽略了这个功能。你知道为什么以及如何修复它吗?我已经尝试了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" />

我不确定为什么您的代码在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。谢谢。