2012-03-10 3 views
2

にユーザーがクリックした場合に呼び出されてからのAJAX呼び出しを防ぐことはできませんAJAX呼び出しを実行する前に確認メッセージを表示します -Ajax.Actionlink OnBegin確認は、私は次のようajax.actionlinkを持っているボタンを「キャンセル」

function deleteconfirmation1() { 
jConfirm('Deletion Confirmation', 'Are you sure you want to delete this Answer'); 
} 

私が直面しています問題はonbegin confiramtionは、ユーザがキャンセルボタンをクリックした場合でも、実行されてからONSUCCESSスクリプトを妨げないということですか?どのように私はOnBeginを確認段階として動作させることができるのですか?アプリケーションは、ajaxコールを処理する前に、ユーザーの選択を「OK」または「キャンセル」します。 ??あなたは、要求をキャンセルするOnBegin方法からfalseを返す必要 BR

答えて

4

Ajax.ActionLinkはすでにAjaxOptions.Confirmプロパティでの確認をサポートしています。

@Ajax.ヘルパーを使用するには、ビュー/レイアウトに~/Scripts/jquery.unobtrusive-ajax.jsを含める必要があります。 jConfirm

EDIT問題:

あなたの問題jConfirmの署名は以下であるということである。

void jConfirm(message, [title, callback]) 

それは代わりにtrueを返すのだ/ falseをユーザーがクリックしたときに呼び出されるコールバック関数を期待OK /キャンセル。

あなたはOnBeginからfalseを返す必要がなく、あなただけのコールバックでjConfirmからの戻り値を持っていないので、これは問題の原因...

は、だからあなたは、コールバックを待つ必要があります....詳細については、この質問を Can you wait for javascript callback? (これも約 jConfirmです)を参照してください。

OnBeginメソッドでは、jConfirmを使用してリクエストをキャンセルすることはできません。

+0

カスタマイズされたJavaスクリプトの確認を使用したいので、私はAjaxOption.Confirmを使用していません。もう一度、JConfirmダイアログが表示されていてもOKまたはCancelを選択しても削除が実行されます。なぜなら、falseを返すことには関係していないと思われる理由は....... –

+0

組み込みの 'それはうまくいくはずだからです。それは 'jConfirm'の継ぎ目が非同期の確認を行い、戻り値が役に立たないと思われる理由です。 'jConfirm'へのリンクを提供できますか? – nemesv

+0

あなたのお返事ありがとうございます。ここにリンクhttp://www.abeautifulsite.net/blog/2008/12/jquery-alert-dialogs/があります。私はajax.actionliknkのスクリプトでビルドを呼び出す必要があります。 –

関連する問題