2014-12-12 1 views
2

나는 다음과 같은 레일 버튼이 : 나는 confirm() 대화 상자를 보여 레일 - UJS을 사용하고캐치 레일 상자의 동작을 확인

<%= 
    link_to "Remove Product", product_path(product), 
    remote: true, 
    method: :delete, 
    data: { confirm: 'Are you sure you want to delete this product?' } 
%> 

을; 쉬운 방법은 자바 스크립트로 확인 답변 잡을 수 있습니까?

+0

[태그 : UJS] 그래서 당신은 이미 UJS를 사용하고 있다고 생각합니다. 그러나 확인을 얻습니다. 그러나 JS가 아닌 UJS의 기본 확인보다 대답을 얻고 싶습니까? – Carpetsmoker

+0

기본 확인 작업을 원하지만 응답에 따라 이벤트를 잡아 다른 작업을 수행하려고합니다. 기본적으로 나는 기본 기능을 유지하고 동시에 수동 방식으로 특별한 것을 잡아낼 수 있는지 궁금합니다. – JohnDel

답변

2

confirm:complete 콜백이 있습니다. 이 문서화되지 않은, 내가 볼 수있는 한, 내가 찾은 looking at the source.

이 바로 confirm() 호출 후에 실행됩니다 :

$(document).on 'confirm:complete', (e, answer) -> 
    alert "Your answer was: #{answer}" 
    return true # You can still cancel by returning false here 
+0

글쎄, 나는 이벤트와 사용자의 "대답"을 포착하고 싶다. 이 작업은 확인 전에 시작되며 주로 동작을 사용자 지정하고 사용자 지정 확인 상자를 만드는 작업입니다. 난 그냥 대답을 잡아 기본 동작과 함께 뭔가를 추가하고 싶습니다. – JohnDel

+0

@ 존 델 어떻게 잊었습니까? > _ <답변을 업데이트했습니다. – Carpetsmoker

+0

고마워,하지만 이건 "확인"을 클릭 할 때만 작동하며 취소시 작동하지 않습니다. – JohnDel

-1

당신이 온 클릭 이벤트를 처리하고이를 사용할 수 있습니다

귀하의 질문에 태그가
if (confirm("Say hello?")) { 
    alert("hello!"); 
    .... 
} else { 
    ..... 
    alert("another") 
} 
+0

예, 레일즈의 기본 기능을 우회하여 (그리고 데이터 확인을 사용하지 않고) 독자적으로 처리 할 수있는 일반적인 코드입니다. – JohnDel