jQuery 또는 Javascript를 사용하여 버튼을 다른 페이지로 리디렉션하는 방법


101

프로토 타입을 만들고 있는데 검색 버튼을 샘플 검색 결과 페이지로 연결하고 싶습니다.

jQuery 또는 일반 JS를 사용하여 클릭 할 때 버튼을 다른 페이지로 리디렉션하려면 어떻게해야합니까?


간단한 HTML 솔루션을 사용할 수 있다고 생각하지 않았기 때문에 js를 요청했습니다. 내 목적을 해결해 주셔서 감사합니다.
Ankur

답변:


64

스크립트없이 :

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

더 좋은 방법은 여러분이 어딘가로가는 것이므로 사용자에게 "어딘가로가는 것"에 대한 표준 인터페이스를 제공합니다.

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

컨텍스트는 "사용자가 양식을 제출하는 일반 검색 시뮬레이션"처럼 들리지만,이 경우 첫 번째 옵션은 갈 길입니다.


13
누가 링크를 생각했을까요? haha
meouw 2010

양식에 +1. 결국 적절한 검색 양식이 될 것이기 때문에 가능하면 지금 그렇게해야합니다.
DisgruntledGoat

@suhail — 3 배의 코드와 JavaScript에 대한 의존성은 좋지 않습니다.
Quentin

1
@ayjay — 제출 버튼을 클릭하면 제출 버튼이 해당 양식과 연결된 경우에만 양식을 제출합니다. 입력을 입력하는 것은이를 수행하는 전통적이고 가장 잘 지원되는 방법입니다.
Quentin

1
@mimi — 아니요, 그렇지 않습니다. 양식 재 제출 문제는 "안전하지 않은"요청을 할 때만 발생합니다 (이 경우 POST 양식이어야하지만 질문은 간단한 탐색에 대한 질문이므로 안전하다고 생각할 이유가 없습니다). 브라우저는 요청이 안전하지 않을 수있는 가능성에 대해 사람들에게 경고 만합니다 (이 경우에는 그렇지 않기 때문에 그렇지 않습니다 method="POST").
Quentin

201

이것이 네가 말하는 뜻 이니?

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

1
에 따르면 이 유래의 질문과 답변, 하나는 향하다해야 window.location하지 document.location가 정식 방법이 아니다한다.
Jujhar Singh 2014 년

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

5
거짓을 반환하는 이유는 무엇입니까?
Francisco Corrales Morales

2
이없는 경우 return false"Enter 또는 Return 키"를 누르면 새 링크로 리디렉션되지 않고 현재 URL로 이동할 수 있습니다. Enter / Return 키를 눌렀을 때 다른 URL에 게시하려는 텍스트 입력 컨트롤이있을 때 특히 유용합니다.
Faith Wins

2
별로 좋은 설명이 아닙니다. 반환 값은 이벤트 처리를 계속할지 여부를 나타냅니다. 기본적으로 이벤트는 계속 버블 링되며 양식 제출, 링크로 이동 또는 아무 작업도하지 않는 등의 다른 작업을 트리거 할 수 있습니다. 그러나 여기서 이벤트를 "흡수"하고 싶습니다. false를 반환하면 여기서 이벤트 처리가 종료됩니다.
redreinard

1
감사합니다-반환 거짓이 저를 구했습니다-URL이 변경되지 않는 이유를 궁금해했지만 아쉽게도 다른 스크립트가 클릭 처리를 계속했을 것입니다.
Derrick Dennis

22

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);
});

도움이 되었기를 바랍니다


2020 : 데이터 타겟에 대한 비트로 인해 저에게 베스트 답변 .... 감사합니다 !!!
MarcoZen

21

간단한 자바 스크립트 사용 :

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


10

자바 스크립트가 필요 없으며 링크로 감싸세요.

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

Ankur이 유효 HTML5를 요청하지 않았다, 그는 자신의 프로토 타입을위한 솔루션을 요구
오웬


7

window.location을 사용할 수 있습니다.

window.location="/newpage.php";

또는 검색 버튼이있는 양식을 원하는 페이지의 동작으로 만들 수 있습니다.


4

이 간단한 JavaScript 코드를 사용하여 샘플 검색 결과 페이지로 연결되는 검색 버튼을 만들 수 있습니다. 여기 에서 내 홈페이지의 '/ search' 로 리디렉션했습니다. Google 검색 엔진에서 검색하려면 양식 작업에서 " https://www.google.com/search " 를 사용할 수 있습니다 .

<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

YT 2012 코드에서.

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


2

이것은 가장 빠른 (가장 읽기 쉽고 가장 덜 복잡한) 방법입니다 .Owens는 작동 하지만 합법적 인 HTML은 아닙니다. 기술적으로이 답변은 jQuery가 아닙니다 (그러나 jQuery는 미리 준비된 의사 코드이기 때문에 클라이언트 플랫폼에서 네이티브 JavaScript로 재 해석 됨- 정말이 없다 jQuery를 같은 건) 어쨌든

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

0

그리고 Unobtrusive JavaScript (UJS)를 사용하는 CoffeeScript가있는 Rails 3에서 :

추가 assets/javascripts/my_controller.js.coffee:

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

읽는다 : document.ready 이벤트가 시작 되면 자바 스크립트를 실행 onclick하는 ID가 field_name있는 DOM 개체에 이벤트를 추가합니다.window.location.href='new_url';


0

여기에는 클라이언트 측 리디렉션에 대한 많은 질문이 있습니다. 대부분의 질문에 대해서는 말할 수 없습니다.이 질문은 예외입니다.

리디렉션은 클라이언트에서 오는 것이 아니라 서버에서 오는 것으로 간주됩니다. 서버를 제어 할 수없는 경우 Javascript를 사용하여 이동할 다른 URL을 선택할 수 있지만 리디렉션이 아닙니다. 리디렉션은 서버에서 300 개의 상태 코드를 사용하거나 HTML에서 META 태그를 사용하여 수행됩니다.


0

링크를 사용하고 버튼처럼 스타일을 지정합니다.

<a href="#page2" class="ui-btn ui-shadow ui-corner-all">Click this button</a>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.