Ошибка в IE при использовании Javascript для изменения действия формы, когда method=get и URL содержит хэш

Я использую Javascript для изменения URL формы при ее отправке. Если этот URL содержит хэш-строку (#), то Internet Explorer игнорирует ее и просто отправляет предыдущую часть html. Firefox и Chrome работают нормально.

Демонстрация:

<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, но без #hello в URL.

Это происходит независимо от того, использую ли я jquery или только javascript, пробовал каждый из следующих вариантов:

myform.action = "page2.html#hello";

myform.attr("action", "page2.html#hello");

myform.get(0).setAttribute("action", "page2.html#hello"); 

Любые предложения (предположим, что я должен сохранить метод как "get", и что я должен использовать хэш в URL, и что я должен использовать Javascript для динамического изменения этого действия)?

5
задан duncan 27 October 2011 в 13:28
поделиться