2010-02-10 3 views
80

Я создаю прототип, и я хочу, чтобы кнопка поиска ссылалась на страницу с результатами поиска.Как сделать кнопку перенаправлением на другую страницу с помощью jQuery или просто Javascript

Как сделать кнопку перенаправлением на другую страницу, когда она нажата с помощью jQuery.

+0

Я просил JS, потому что я Бесполезный Представьте себе, что доступно простое решение HTML. Спасибо, что решил мою цель. – Ankur

ответ

57

Без сценария:

<form action="where-you-want-to-go"><input type="submit"></form> 

еще лучше, так как вы только собираетесь куда-то, представить пользователю стандартный интерфейс для "просто куда-то":

<a href="where-you-want-to-go">ta da</a> 

Хотя, контекст звучит так: «Имитировать обычный поиск, где нас er представляет форму », и в этом случае первым вариантом является способ перехода.

+13

Кто бы мог подумать о ссылке? haha – meouw

+0

+1 для формы. Поскольку это будет правильная форма поиска, в конце концов вы должны сделать это как сейчас, если это возможно. – DisgruntledGoat

+0

+1 для решения, отличного от JavaScript –

9

Вы можете использовать:

location.href = "newpage.html" 

в OnClick событие кнопки.

58
$('#someButton').click(function() { 
    window.location.href = '/some/new/page'; 
    return false; 
}); 
+4

зачем возвращать false? –

+0

Без 'return false', нажатие клавиши« Enter или Return »может привести вас к текущему URL-адресу, а не к перенаправлению на новую ссылку. Особенно полезно, когда у вас есть элемент управления ввода текста, который вы хотите отправить на другой URL-адрес, когда вы нажмете клавишу ввода/возврата. –

+1

Это не очень хорошее объяснение. Возвращаемое значение указывает, следует ли продолжать обработку события. По умолчанию событие будет продолжать расти, и может инициировать другие действия, такие как отправка формы или переход к ссылке или ничего. Однако вы действительно хотите «поглотить» событие здесь. Возвращая false, обработка событий закончится. – redreinard

8

Это должно работать ..

$('#buttonID').click(function(){ window.location = 'new url'}); 
166

это то, что вы имеете в виду?

$('button selector').click(function(){ 
    window.location.href='the_link_to_go_to.html'; 
}) 
+1

В соответствии с [this stackoverflow] (http://stackoverflow.com/questions/2430936/whats-the-difference-between-window-location-and-document-location-in-javascrip) вопросом и ответом следует придерживаться 'window.location', а не' document.location', поскольку это не канонический путь. –

6

Вы можете использовать window.location

window.location="/newpage.php"; 

Или вы можете просто сделать вид, что кнопка поиска в действие есть страницы, которую вы хотите.

17

С помощью простой Javascript:

<input type="button" onclick="window.location = 'path-here';"> 
+0

OP хочет это в jQuery .. – Reigel

+4

@Reigal: Или просто JavaScript – meouw

0

И в Rails 3 с использованием CoffeeScript ненавязчивый JavaScript (UJS):

Добавить в assets/javascripts/my_controller.js.coffee:

$ -> 
    $('#field_name').click -> 
    window.location.href = 'new_url' 

, который гласит: когда document.ready событие уволят, добавить событие onclick к DOM объект, идентификатор field_name, который не выполняет яваскрипта window.location.href='new_url';

8

нет необходимости в JavaScript, просто обернуть его в ссылку

<a href="http://www.google.com"><button type="button">button</button></a> 
+1

Это лучшее решение, спасибо. – 23W

+1

Недействительно в HTML 5. Источник: http://stackoverflow.com/a/6393863/2132073 –

+0

+ Оуэн, он прав, это не легально bruh –

2

Вы можете использовать этот простой JavaScript-код, чтобы кнопка поиска могла ссылаться на страницу результатов поиска. Здесь я перенаправлен на '/ search' моей домашней страницы. Если вы хотите найти поисковую систему Google, вы можете использовать "https://www.google.com/search" в форме action.

<form action="/search"> Enter your search text: 
<input type="text" id="searchtext" name="q"> &nbsp; 
<input onclick="myFunction()" type="submit" value="Search It" /> 
</form> 
<script> function myFunction() 
{ 
var search = document.getElementById("searchtext").value; 
window.location = '/search?q='+search; 
} 
</script> 
0

Есть много вопросов здесь о стороне клиента перенаправления, и я не могу носик прочь на большинство из них ... это одно исключение.

Перенаправление не должно исходить от клиента ... оно должно прибывать с сервера. Если у вас нет контроля над сервером, вы можете использовать Javascript для выбора другого URL-адреса, но ... это не перенаправление. Перенаправление выполняется с помощью 300 кодов состояния на сервере или путем привязки тега META в HTML.

14

В вашем HTML, вы можете добавить атрибут данных к кнопке:

<button type="submit" class="mybtn" data-target="/search.html">Search</button> 

Затем вы можете использовать JQuery, чтобы изменить URL:

$('.mybtn').on('click', function(event) { 
    event.preventDefault(); 
    var url = $(this).data('target'); 
    location.replace(url); 
}); 

Надеется, что это помогает

0

это способ сделать это, Owens работает, но это не легальный HTML, технически этот ответ не jQuery (но так как jQuery - это предварительно подготовленный псевдокод - переинтерпретированный на клиентская платформа, как родной JavaScript - там действительно не нет такой вещи, как JQuery в любом случае)

<button onclick="window.location.href='http://www.google.com';">Google</button> 
0

Используйте ссылку и стиль его как кнопка:

<a href="#page2" class="ui-btn ui-shadow ui-corner-all">Click this button</a>