ホームページ  >  記事  >  ウェブフロントエンド  >  jBoxを使用した送信ダイアログボックスがポップアップしない問題の解決策_javascriptスキル

jBoxを使用した送信ダイアログボックスがポップアップしない問題の解決策_javascriptスキル

WBOY
WBOYオリジナル
2016-05-16 17:48:451138ブラウズ

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 は、デフォルト イベント自体をブロックするだけであり、イベントのバブリングは妨げられません。
イベントのバブリングを防ぐこともできます。これには次のメソッドを呼び出す必要があります。




コードをコピー
コードは次のとおりです。 function stopBubble(e) { // イベント オブジェクトが提供されている場合、これは非 IE ブラウザです if (e && e.stopPropagation)
// したがって、W3C stopPropagation() メソッドをサポートします
e.stopPropagation( );
else
// それ以外の場合は、Internet Explorer
// イベントのバブリングをキャンセルする方法を使用する必要があります
window.event.cancelBubble = true; >
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。