2010-02-10 7 views
80

Tôi đang tạo mẫu thử nghiệm và tôi muốn nút tìm kiếm liên kết đến trang kết quả tìm kiếm mẫu.Cách chuyển hướng nút sang trang khác bằng jQuery hoặc chỉ Javascript

Làm cách nào để làm cho nút chuyển hướng đến một trang khác khi được nhấp bằng cách sử dụng jQuery.

+0

tôi đã yêu cầu js vì tôi didn Đừng tưởng tượng rằng một giải pháp HTML đơn giản đã có sẵn. Cảm ơn nó đã giải quyết mục đích của tôi. – Ankur

Trả lời

57

Nếu không có kịch bản:

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

Hơn thế nữa, vì bạn chỉ cần đi đâu đó, trình bày cho người sử dụng với giao diện tiêu chuẩn cho "chỉ xảy ra ở đâu đó":

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

Mặc dù, ngữ cảnh có vẻ như "Mô phỏng tìm kiếm thông thường nơi chúng tôi er đệ trình một biểu mẫu ", trong trường hợp đó, tùy chọn đầu tiên là cách để đi.

+13

Ai có thể nghĩ đến một liên kết? haha – meouw

+0

+1 cho biểu mẫu. Vì nó sẽ là một hình thức tìm kiếm thích hợp cuối cùng bạn nên làm điều đó ngay bây giờ nếu có thể. – DisgruntledGoat

+0

+1 cho giải pháp không phải JavaScript –

9

Bạn có thể sử dụng:

location.href = "newpage.html" 

trong sự kiện onclick của nút.

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

lý do tại sao trả về false? –

+0

Nếu không có 'return false', nhấn" Enter hoặc Return key "có thể đưa bạn đến url hiện tại thay vì chuyển hướng đến liên kết mới. Đặc biệt hữu ích, khi bạn có một điều khiển nhập văn bản mà bạn muốn đăng lên một url khác khi bạn nhấn phím enter/return. –

+1

Đó không phải là một lời giải thích rất tốt. Giá trị trả lại cho biết có tiếp tục xử lý sự kiện hay không. Theo mặc định, sự kiện sẽ tiếp tục bong bóng và có thể kích hoạt các hành động khác, chẳng hạn như gửi biểu mẫu hoặc truy cập liên kết hoặc không có gì. Tuy nhiên, bạn thực sự muốn "hấp thụ" sự kiện ở đây. Bằng cách trả về false, xử lý sự kiện sẽ kết thúc ở đây. – redreinard

8

này nên làm việc ..

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

này là những gì bạn nghĩa là gì?

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

Theo câu hỏi và câu trả lời cho [câu hỏi xếp chồng này [http://stackoverflow.com/questions/2430936/whats-the-difference-between-window-location-and-document-location-in-javascrip), người ta nên nghiêng về phía 'window.location' và không phải' document.location' vì nó không phải là cách kinh điển. –

6

Bạn có thể sử dụng window.location

window.location="/newpage.php"; 

Hoặc bạn chỉ có thể làm cho hình thức đó vào nút tìm kiếm là có một hành động của trang web mà bạn muốn.

17

Với đơn giản Javascript:

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

OP muốn nó trong jQuery .. – Reigel

+4

@Reigal: Hoặc chỉ cần JavaScript – meouw

0

Và trong Rails 3 với CoffeeScript sử dụng không phô trương JavaScript (UJS):

Thêm vào assets/javascripts/my_controller.js.coffee:

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

mà đọc: khi sự kiện document.ready đã bị sa thải, thêm một sự kiện onclick đến một Đối tượng DOM có ID là field_name thực thi javascript window.location.href='new_url';

8

Không cần javascript, chỉ cần bọc nó trong một liên kết

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

Đây là giải pháp tốt nhất, cảm ơn bạn. – 23W

+1

Nó không hợp lệ trong HTML 5. Nguồn: http://stackoverflow.com/a/6393863/2132073 –

+0

+ Owen anh ta đúng nó không hợp pháp bruh –

2

Bạn có thể sử dụng mã JavaScript đơn giản này để làm cho nút tìm kiếm liên kết đến trang kết quả tìm kiếm mẫu. Ở đây tôi đã chuyển hướng đến '/ search' của trang chủ của tôi, Nếu bạn muốn tìm kiếm từ công cụ tìm kiếm của Google, Bạn có thể sử dụng "https://www.google.com/search" trong hành động biểu mẫu.

<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

Có rất nhiều câu hỏi ở đây về chuyển hướng phía máy khách và tôi không thể phun ra trên hầu hết trong số chúng… đây là một ngoại lệ.

Chuyển hướng không phải là bắt nguồn từ ứng dụng khách ... nó được cho là đến từ máy chủ. Nếu bạn không có quyền kiểm soát máy chủ, bạn chắc chắn có thể sử dụng Javascript để chọn một URL khác để truy cập, nhưng ... đó không phải là chuyển hướng. Chuyển hướng được thực hiện với 300 mã trạng thái tại máy chủ hoặc bằng cách gắn thẻ META trong HTML.

14

Trong html của bạn, bạn có thể thêm thuộc tính dữ liệu để nút của bạn:

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

Sau đó, bạn có thể sử dụng jQuery để thay đổi url:

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

Hope this helps

0

đây là cách để làm điều đó, Owens hoạt động nhưng nó không phải là HTML hợp pháp, về mặt kỹ thuật câu trả lời này không phải là jQuery (nhưng vì jQuery là một mã giả được chuẩn bị sẵn - được diễn giải lại trên nền tảng khách hàng như JavaScript mẹ đẻ - có thực sự có những điều như jQuery nào)

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

Sử dụng một liên kết và tạo kiểu cho nó giống như một nút:

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