2016-08-14 19 views
2

sweet alertを使用して確認を作成しようとしています。ユーザーがボタンをクリックすると、swal(警告)ウィンドウが開き、確認またはキャンセルできます。 confirmをクリックした場合は、JQueryをクリックしてください。JQueryの確認が送信されない

しかし、何もしません。あなたはどこに問題があるか知っていますか?私は複数のオプションを試みた

からunbind.click()などを...

$('.button-apply').on('click', function (e) { 
     var t = $(this); 
     e.preventDefault(); 
     swal({ 
      title: "Are you sure?", 
      text: "Do you want to apply for this job?", 
      type: "info", 
      showCancelButton: true, 
      confirmButtonColor: "#b3ff99", 
      confirmButtonText: "Confirm", 
      //closeOnConfirm: false, 
      //showLoaderOnConfirm: true, 
      html: false 
     }, function (isConfirm) { 
      if (!isConfirm) { 
       return; 
      } else { 
       t.click(); 
      } 
     }) 

    }) 

EDIT:

正常にアンバインドが、 t.trigger('click')実行しません
} else { 
       t.unbind('click'); 
       t.trigger('click'); 
      } 

} else { t.click(); }

を変更します。

は解決:

それは<a href....>なので、それはunbindedだので、私はwindow.location.href = t.attr('href');t.click()を交換してきたし、それが正常に動作するとき、私はt.submit()を行うことができませんでした。

+0

私はすでに、それが動作しないことを試みました。たぶん、preventDefault ... { t.trigger( 'click'); } –

+0

これは、ユーザーが[確認]をクリックしたときに同じボタンをクリックするという無限ループになります。私はそれが正常に動作していることをテストしました。 –

答えて

0

e.preventDefault();を指定しました。これにより、button-applyのイベントが発生しなくなりました。この行を削除すると、クリックイベントが戻ってきます。

ユーザがキャンセルを押すと、同じイベントが再び発生し、無限ループが発生することに注意してください。 t.click();を削除し、ユーザーがこの操作を実行する場合は、呼び出すロジックを配置する必要があります。

は、例として:

$('.button-apply').on('click', function (e) { 
 
     var t = $(this); 
 
     swal({ 
 
      title: "Are you sure?", 
 
      text: "Do you want to apply for this job?", 
 
      type: "info", 
 
      showCancelButton: true, 
 
      confirmButtonColor: "#b3ff99", 
 
      confirmButtonText: "Confirm", 
 
      //closeOnConfirm: false, 
 
      //showLoaderOnConfirm: true, 
 
      html: false 
 
     }, function (isConfirm) { 
 
      if (!isConfirm) { 
 
       alert('You have not applied for the job!'); 
 
      } else { 
 
       alert('You have applied for the job'); 
 
       // Submit form $("#yourForm").submit(); 
 
       // or an AJAX call. 
 
      } 
 
     }) 
 

 
    })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script> 
 
<link href="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.css" rel="stylesheet"/> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.js"></script> 
 

 

 
<button class="button-apply">Click me</button>

+0

しかし、preventDefaultを削除すると、確認を待つことはありません。それを確認し、ユーザーはキャンセルをクリックできません。 –

+0

@MilanoSlesarik - 私はあなたを助けるためにいくつかのコードを含めてくれました。 –

+0

いいえ動作しません。キャンセルをクリックすると警告が表示されますが、確認をクリックしたように動作します。一方、フォームの場合はt.unbind( 'click')が良い考えですが、です。私はついにそれを動作させました - t.click()の代わりに、私はそうでした:window.location.href = t.attr( 'href'); –

関連する問題