我正在使用Javascript来更改表单的URL,当您提交表单时。如果该URL包含一个哈希字符串(#),那么Internet Explorer会忽略它,并只提交到该html部分之前。Firefox和Chrome则没有问题。
演示:
任何建议(假设我必须将方法保留为“get”,并且必须在URL中使用哈希,在JavaScript中动态更改此操作)?
演示:
<script type="text/javascript">
function changeURL() {
var myform = document.getElementById('myform');
myform.setAttribute("action", "page2.html#hello");
return false;
}
</script>
<form id="myform" action="page1.html" method="get" onsubmit="changeURL()">
<input type="submit">
</form>
如果我将方法更改为“post”,那么就没问题了。如果我使用“get”,那么IE会跳转到page2.html页面,但URL中没有#hello。
这种情况发生的原因不论是我使用jquery还是只用javascript,都尝试过以下每个方法:
myform.action = "page2.html#hello";
myform.attr("action", "page2.html#hello");
myform.get(0).setAttribute("action", "page2.html#hello");
任何建议(假设我必须将方法保留为“get”,并且必须在URL中使用哈希,在JavaScript中动态更改此操作)?
get
查询字符串不应该放在URL的哈希之前吗?如果是这样,我能想到的第一个解决方案是把哈希值放在一个隐藏的表单字段中,以便在查询字符串中传递它,然后在另一端使用JavaScript将其转换回哈希。 - Blazemonger