Добавление символа hash '#' для URL-адреса с действием формы?

Итак, у меня есть форма с кнопкой отправки и текстовым вводом...

Я хочу: http://localhost/

чтобы стать: http://localhost/#q=

Я сделал решение в javascript, которое включает в себя изменение "действия" формы на URL с хешем onclick.. но это не работает в IE.

У кого-нибудь есть решение, которое работает во всех браузерах?

Ответы

Ответ 1

Я столкнулся с аналогичной проблемой, когда IE не вытягивал хэш из действия формы.

У меня была форма

<form action="/#search" id="search-form">
   <input type="text" class="search-query" placeholder="Search" name="q">
</form>

Когда я отправил эту форму во что-либо, кроме IE, страница перешла к

/?q=searchparams#search

Но в IE он перешел к

/?q=searchparams

Чтобы решить эту проблему, я использовал JQuery для привязки к действию отправки и перенаправления на страницу, на которую я хотел, чтобы она переходила.

$("#search-form").submit(function() {
    var query = $('input[name="q"]').val();
    window.location.href = 'index.php?q='+query+'#search';
    return false;
}); 

Он отлично работает с тех пор.

Ответ 2

<script>
function add_hash() {
    window.location.hash = "q=";
}    
</script>

<form onsubmit="add_hash(); return false;">

Не уверен, что вы делаете с этим.