2012-11-10 4 views
1

나는 form_for(:remote=>true)이 있지만 제출하기 전에 일반 자바 스크립트 확인 상자를 표시하고 싶습니다.철수 리모콘으로 제출 취소 취소 form_for

어쨌든 이것을 달성 할 수 있습니까? 이상적으로 : before 또는 : onsubmit을 사용하면 제출을 취소 할 수 있습니다 : return confirm("Are you sure?"); 또는 자바 스크립트 이벤트 후크?

답변

10

당신은 the confirm option 쉽게 수행 할 수 있습니다 감사합니다

<%= for_form @my_thing, remote: true do |f| %> 
    <%= f.text_field :my_value %> 
    <%= f.submit 'Submit', confirm: 'Are you sure?' %> 
<% end %> 

당신은 원활하게 작동이에 대한 (새 레일 프로젝트에 기본적으로 사용 가능)을 Rails UJS driver를 사용해야합니다. 당신이 그렇게 원하는 경우

hooks into the form submission lifecycle you can access 있습니다

  • ajax:beforeSend을 - XHR 요청이 이루어지기 전에 트리거; 서버
  • ajax:error에서 성공적인 응답 트리거 - - 서버에서 오류 응답에 트리거
  • ajax:complete이 - 요청
  • ajax:success 취소 false를 반환 서버에서 성공 또는 오류 응답 중 하나에 트리거를
  • $("#my_remote_form").on('ajax:beforeSend', function() { 
        return confirm("Are you sure?"); 
    }); 
    
    :

그래서, 예를 들어, 당신은이 같은 일부 코드로 confirm 양식 도우미 옵션을 모방 할 수 있어야한다