jBox は優れたダイアログ コンポーネントです。
ASP.NET フォームで jBox を使用すると、ボタンによって登録されたクライアントのクリック イベントでダイアログ ボックスがポップアップできないことがわかります。
ページは瞬時に送信されるため、ダイアログ ボックスが点滅するか、まったく表示されなくなることもあります。モーダル ダイアログが失敗します。
まず、ボタンにはデフォルトの処理があり、通常の ASP.NET ボタンの場合、フォームが送信されるとページが更新されます。したがって、フォームを送信しないようにするには、ボタンのデフォルトの動作を防ぐ必要があります。これは、次のコードで実現できます。
function stopDefault( e ) {
// デフォルトのブラウザ アクションを防止します (W3C)
if ( e && e.preventDefault )
e.preventDefault();
else
// IE でブラウザ アクションを停止するためのショートカット
window.event.returnValue = false;
return false>}
次に、ダイアログ ボックスを閉じるときに、フォームを送信できるようにします。スクリプトによって実現されます。これは、フォーム オブジェクトの submit メソッド submit() を呼び出すためです。
実装では、コントロールのクライアント識別子も見つける必要があります。これは次のように取得できます。
var btnSaveId = "<%= this.btnSave.ClientID %>";
var form1Id = " <%= this.form1.ClientID %>";
ボタンクリックのクライアント側の処理は次のとおりです
// 登録ボタンのクリック イベント処理
$("#" btnSaveId).click(function ( e ) {
//ダイアログを閉じるときにフォームを送信するように設定します
var options = {
closed: function () {
alert("submit");
// 送信する必要があるフォームを検索します
$("#" form1Id ).submit();
; >// jBox ダイアログ ボックスを表示します
var info = 'jQuery jBox
< ;br />バージョン: v2.0
日付: 2011-7-24
' ;
info = '公式ウェブサイト:
http://kudystudio.com/jbox'; >$.jBox(info, options);
// デフォルトのイベント処理を禁止します
});
、イベント処理メソッドで false を返すと、同様の機能を実行できます。
しかし、これら 2 つの方法には違いがあります。 false を返すと、イベントのバブルアップが阻止されるだけでなく、イベント自体も阻止されます。
stopDefault は、デフォルト イベント自体をブロックするだけであり、イベントのバブリングは妨げられません。
イベントのバブリングを防ぐこともできます。これには次のメソッドを呼び出す必要があります。
コードをコピー
// したがって、W3C stopPropagation() メソッドをサポートします
e.stopPropagation( );
else
// それ以外の場合は、Internet Explorer
// イベントのバブリングをキャンセルする方法を使用する必要があります
window.event.cancelBubble = true; >