2017-01-16 10 views
1

ユーザーがサイトのプロジェクトを削除するときにクリックすると確認がポップアップするボタンがあります。このためにalertify.jsを使用していますが、ボタンをクリックすると確認ボックスが表示され、自動的にプロジェクトを削除し、消えてからOKをクリックしてキャンセルまたはキャンセルすることができます。ここアラート確認の問題

は、ここでは、HTML

<button type="submit" class="btn btn-link btn-sm" Onclick="return ConfirmDelete();" style="margin:5px;"></button> 

である私はこれを防ぐことができますどのようにjavascriptのコード

function ConfirmDelete() 
{ 
    alertify.confirm("This is a confirm dialog", function (ev) { 
     ev.preventDefault(); 
     alertify.success("You've clicked OK"); 
    }, function(ev) { 
     ev.preventDefault(); 
     alertify.error("You've clicked Cancel"); 
    }); 
} 

のですか?

+0

です:あなたの関数にボタンの参照を渡すことを確認してください。このため

function ConfirmDelete(button) { alertify.confirm("This is a confirm dialog", function() { button.form.submit() // alertify.success("You've clicked OK", function() { // button.form.submit() // }); }, function() { alertify.error("You've clicked Cancel"); }); return false; } 

:あなたはOkボタンを押した場合には、常にfalseを返すと、手動で(プログラムで)フォームを提出することによって、しかし、それを停止することができますHTMLフォームを使用していますか? – Aer0

+0

はい私はhtmlフォームを使用しています –

+0

どのライブラリやフレームワークを使用しているのかわかりませんが、フォーム送信としてボタンを使用すると、そのボタンでonclickイベントは使用されません。これは望ましくない振る舞いにつながります。だから多分あなたのコードはかなり正しいと思われるので、あなたのせいかもしれません。 – Aer0

答えて

3

この場合、カスタム確認は非ブロック非同期ダイアログであるため、フォームの送信を防ぐことはできません。あなたは

<button type="submit" onclick="return ConfirmDelete(this)">ConfirmDelete</button> 
+0

デモ、btw:https://jsfiddle.net/71fnf6zg/ – dfsq

+0

ありがとうございます!これは完全に動作します –

関連する問題