2011-07-18 57 views
13

jQuery UIダイアログのクローズイベントを停止する方法はありますか?jQuery UIダイアログ - 閉じるイベントをクローズ

私はフォームを持つダイアログモーダルを持っています。ユーザーがダイアログを閉じると、「変更を保存せずに続行しますか?」というメッセージが表示されます。 [はい・いいえ]。 [Yes]ボタンは継続して、ダイアログを閉じます。 [いいえ]ボタンは、閉じるイベントを停止し、ダイアログを開いたままにします。

これは可能ですか?

答えて

36

はい、beforeCloseオプションを使用できます。 docsから:

このイベントは、ダイアログが閉じようとするとトリガーされます。 beforeCloseイベントハンドラ(コールバック関数)がfalseを返す場合、closeは防止されます。

コード例

サプライinitオプションとしてbeforeCloseイベントを処理するコールバック関数。

$(".selector").dialog({ 
    beforeClose: function(event, ui) { ... } 
}); 
+1

私はこれを前に見ましたが、私が必要としていたものを使うとは思っていませんでした。本当に助けになりました!誰かが好奇心が強いなら '$(ele).dialog(" close ")'はbeforeCloseの値を返します。私はそれが閉じられた後、他の多くの仕事をした機能を持っていたので、ダイアログ( "閉じる")コールもチェック/リターンする必要があった。 – Marie

3

ジャスティンの答えは、モーダルを表示するために正常に動作します。あなたが閉鎖を解除したい場合は、あなたの関数はそのように、falseを返す必要があります:それは近いいけない場合、ダイアログが閉じて、偽のかどう

$(".selector").dialog({ 
    beforeClose: function(event, ui) 
    { return check_if_unsaved_changes(..); } 
}); 

check_if_unsaved_changesはtrueを返す必要があります。

関連する問題