Ваша форма в настоящее время выполняет поведение по умолчанию - т.е. получает текущий URL (потому что вы не указали действие или метод) с параметрами строки запроса, извлеченными из значений, введенных в форму.
Чтобы остановить поведение по умолчанию, вам нужно убедиться, что вы return false
из своих обработчиков событий:
$(document).ready(function() {
$('#tag-search').click(function() {
goUrl = 'http://mysite.com/' + $('#keyword').val().toLowerCase();
window.location = goUrl;
return false; // Prevent the default button behaviour
});
$('#tagForm').submit( function() {
return false; // May be necessary to prevent the default form behaviour
});
});
Как и другие определили, вам нужно заключить URL базового сайта в кавычки, когда вы присваиваете его goUrl
, чтобы убедиться, что он обрабатывается как строка.
Обновление Вероятно, целесообразно переместить логику перенаправления из обработчика click
кнопки в обработчик submit
формы, как предлагает Стофке:
$(document).ready(function() {
$('#tagForm').submit( function() {
goUrl = 'http://mysite.com/' + $('#keyword').val().toLowerCase();
window.location = goUrl;
return false; // Prevent the default form behaviour
});
});
Имейте в виду, что существуют и другие способы отправки формы, помимо нажатия кнопки «Отправить», например, нажатие клавиши Enter
внутри текстового поля - использование вашей реализации, когда пользователь нажимает Enter внутри текстового поля ключевого слова, они все равно окажутся на http: // mysite.com/tags?keyword=MYKEYWORD, а не на http: // mysite.com/tags/mykeyword.