33896


登録フォームで戻るボタンを押した際に、警告を出す設定を行っています。  
その際、下記条件でbeforeunloadイベントを除外しようとしたのですが、  
知識不足の為 **２の場合** 対応できません。 恐れ入りますが、どなたかご教授いただければと存じます。

▲除外条件▲  
1:submitした場合  
2:登録フォーム中の「フェイスブックでログイン」へのリンクを押した場合

JSはrailsのcoffee scriptですが、jquery jsでご回答頂いても問題ございません。

[code]

    <div class="entryProfile-buttonWrapper--fb flex">
      <div>
        <a class="btn btn-flat-facebook w-80-percent" href="/users/auth/facebook?is_business=false">
          Facebookで登録・ログイン </a>
      </div>
    </div>
    
    <form accept-charset="UTF-8" action="/registration" class="new_user" id="js-registrationForm" method="post">
      <div class="form-group row">
        <div class="col-xs-3 text-left">
          <span class="text-bold">姓（全角漢字）</span>
        </div>
        <div class="col-xs-4">
          <input class="form-control placeholder-no-fix" id="user_profile_attributes_last_name" name="user[profile_attributes][last_name]" placeholder="内田" type="text">
        </div>
      </div>
      <input class="btn btn-blue registrationForm-submit w-90-percent track-regist-db" data-disable-with="送信中..." id="submit-registration" name="commit" type="submit" value="無料会員登録する">
    </form>
[/code]

記入したJS(coffee script)

[code]

    onBeforeunloadHandler = (e) ->
      e.returnValue = 'ページから移動しますか？'
    $(window).on 'beforeunload', onBeforeunloadHandler
    $('form').on 'submit', (e) ->
      $(window).off 'beforeunload', onBeforeunloadHandler
[/code]


CC BY-SA 3.0
2017-04-09T06:12:43.373
33876
2017-04-10T01:01:25.170
20360
question
javascript jquery coffeescript
beforeunloadイベントで特定リンクの場合適用外にしたい


> 2:登録フォーム中の「フェイスブックでログイン」へのリンクを押した場合

リンクをボタンのように使いたいのでしたらこれでどうでしょうか？  
jQueryです。`.js-button-fb-login`はaタグにつけたクラス名です。

[code]

    $('.js-button-fb-login').on('click', function(e) {
      e.preventDefault();
      $(window).off('beforeunload', onBeforeunloadHandler);
    });
    
[/code]


CC BY-SA 3.0
2017-04-09T08:23:43.457
33881
2017-04-09T08:23:43.457
14222
33876
answer


isirin様ご回答ありがとうございました。  
頂いた内容を一部改変し下記で対応できました。 早急にありがとうございました

[code]

     $('.js-button-fb-login').on 'click', (e) ->
       $(window).off 'beforeunload', onBeforeunloadHandler
[/code]


CC BY-SA 3.0
2017-04-10T01:01:25.170
33896
2017-04-10T01:01:25.170
20360
33876
answer