Cara membuat tombol redirect ke halaman lain menggunakan jQuery atau hanya Javascript


101

Saya membuat prototipe dan saya ingin tombol telusur ditautkan ke halaman hasil penelusuran contoh.

Bagaimana cara membuat tombol mengarahkan ke halaman lain ketika diklik menggunakan jQuery atau JS biasa.


Saya meminta js karena saya tidak membayangkan bahwa solusi HTML sederhana tersedia. Terima kasih itu menyelesaikan tujuan saya.
Ankur

Jawaban:


64

Tanpa skrip:

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

Lebih baik lagi, karena Anda baru saja pergi ke suatu tempat, berikan pengguna antarmuka standar untuk "pergi ke suatu tempat":

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

Meskipun, konteksnya terdengar seperti "Simulasikan penelusuran normal di mana pengguna mengirimkan formulir", dalam hal ini opsi pertama adalah cara yang harus dilakukan.


13
Siapa yang mengira sebuah tautan? haha
meouw

1 untuk formulir. Karena ini akan menjadi formulir pencarian yang tepat pada akhirnya Anda harus melakukannya seperti itu sekarang jika memungkinkan.
DisgruntledGoat

@suhail - Kode tiga kali lebih banyak dan ketergantungan pada JavaScript tidaklah baik.
Quentin

1
@ayjay - Mengklik tombol kirim hanya mengirimkan formulir jika tombol kirim terkait dengan formulir itu. Menempatkan masukan di dalamnya adalah cara tradisional dan paling didukung untuk melakukan itu.
Quentin

1
@mimi - Tidak, tidak. Masalah pengiriman ulang formulir hanya terjadi ketika Anda membuat permintaan yang tidak "aman" (dalam hal ini harus berupa formulir POST… tetapi pertanyaannya menanyakan tentang navigasi sederhana, jadi tidak ada alasan untuk tidak menganggapnya aman). Browser hanya memperingatkan orang-orang tentang kemungkinan ketika permintaan mungkin tidak aman (jadi mereka tidak akan melakukannya karena tidak aman method="POST").
Quentin

201

apakah ini yang kamu maksud

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

1
Menurut pertanyaan dan jawaban stackoverflow ini , seseorang harus condong ke arah window.locationdan bukan document.locationkarena ini bukan cara kanonik.
Jujhar Singh

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

5
mengapa mengembalikan false?
Francisco Corrales Morales

2
Tanpa return false, menekan "Enter atau Return key" mungkin hanya membawa Anda ke url saat ini daripada mengarahkan ke link baru. Sangat berguna, ketika Anda memiliki kontrol input teks yang ingin Anda posting ke url yang berbeda ketika Anda menekan tombol enter / return.
Faith Menang

2
Itu bukan penjelasan yang bagus. Nilai kembali menunjukkan apakah akan melanjutkan pemrosesan acara. Secara default, acara akan terus menggelembung, dan dapat memicu tindakan lain, seperti mengirimkan formulir, atau membuka tautan, atau tidak sama sekali. Namun, Anda sangat ingin "menyerap" peristiwa di sini. Dengan mengembalikan false, pemrosesan acara akan berakhir di sini.
redreinard

1
terima kasih - pengembalian palsu menyelamatkan saya - bertanya-tanya mengapa url tidak berubah - tetapi sayangnya beberapa skrip lain pasti terus memproses klik.
Derrick Dennis

22

Di html Anda, Anda dapat menambahkan atribut data ke tombol Anda:

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

Kemudian Anda dapat menggunakan jQuery untuk mengubah url:

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

Semoga ini membantu


2020: Jawaban Terbaik untuk Saya karena sedikit tentang target data .... Terima kasih !!!
MarcoZen

21

Dengan Javascript sederhana:

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


10

Tidak perlu javascript, cukup bungkus dengan link

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

Ankur tidak meminta HTML5 yang valid, dia meminta solusi untuk prototipe-nya
Owen


7

Anda dapat menggunakan window.location

window.location="/newpage.php";

Atau Anda bisa membuat formulir yang tombol pencariannya memiliki aksi halaman yang Anda inginkan.


4

Anda dapat menggunakan kode JavaScript sederhana ini untuk membuat tombol pencarian untuk ditautkan ke halaman hasil pencarian contoh. Di sini saya telah dialihkan ke '/ search' dari beranda saya, Jika Anda ingin mencari dari mesin pencari Google, Anda dapat menggunakan " https://www.google.com/search " dalam bentuk tindakan.

<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>

2

Dari kode YT 2012.

<button href="https://stackoverflow.com/signin" onclick=";window.location.href=this.getAttribute('href');return false;">Sign In</button>


2

ini adalah cara TERCEPAT (paling mudah dibaca, paling tidak rumit) untuk melakukannya, Owens berfungsi tetapi ini bukan HTML legal, secara teknis jawaban ini bukan jQuery (tetapi karena jQuery adalah pseudocode yang telah disiapkan sebelumnya - ditafsirkan ulang pada platform klien sebagai JavaScript asli - benar-benar adalah ada hal seperti jQuery pula)

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

0

Dan di Rails 3 dengan CoffeeScript menggunakan JavaScript yang tidak mengganggu (UJS):

Tambahkan ke assets/javascripts/my_controller.js.coffee:

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

yang berbunyi: ketika peristiwa document.ready telah diaktifkan, tambahkan onclickperistiwa ke objek DOM yang ID-nya field_namemengeksekusi javascriptwindow.location.href='new_url';


0

Ada banyak pertanyaan di sini tentang pengalihan sisi klien, dan saya tidak dapat mengungkapkan sebagian besar dari mereka… yang satu ini adalah pengecualian.

Pengalihan tidak seharusnya datang dari klien… itu seharusnya datang dari server. Jika Anda tidak memiliki kendali atas server, Anda pasti dapat menggunakan Javascript untuk memilih URL lain untuk dituju, tetapi… itu bukan pengalihan. Pengalihan dilakukan dengan 300 kode status di server, atau dengan menggunakan tag META dalam HTML.


0

Gunakan tautan dan beri gaya seperti tombol:

<a href="#page2" class="ui-btn ui-shadow ui-corner-all">Click this button</a>
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.