2012-02-03 16 views
2

ここに問題があります。私は2つのラジオボタンがあるjqueryモーダルダイアログを持っています。私のコードでは、jQuery ajaxStartとAjaxStopハンドラを使ってAjaxリクエストをチェックしています(Ajaxリクエストの実行時に、Loading ...メッセージなどを表示するためのjqueryダイアログが他にもあります)。各ラジオボタンを選択すると、ajaxリクエストが行われます。私が抱えている問題は、ajaxイベント(ajaxStart、ajaxStop)のために、ラジオボタンをクリックすると選択されないということです(ラジオボタンの正しい値が得られます)。これを引き起こす原因は何ですか?ajaxのjqueryダイアログボックスでラジオボタンが選択されていない

あなたは、私がこのjsfiddle

でmeean何のイラストを見ることができますが、あなた

答えて

0

ありがとう問題が#ajax-dialogダイアログのmodal: trueオプションから来ているようです。このオプションをfalseに設定すると、期待どおりに動作します。 jqueryとjqueryの最新バージョンにアップグレードすると、問題が解決されないようです。 falseへのモーダルオプションを設定し


ソリューション1

DEMO

$('#ajax-dialog').dialog({ 
    autoOpen: false, 
    modal: false, // set to false 
    title: 'Loading...' 
}); 


ソリューション2

あなたは全ページや特定の要素をブロックを可能にするプラグインBlockUIを使用することができます。オーバーレイdivを(ページまたは要素の上に)表示することで、基礎となるコンテンツとのやりとりを禁止します。あなたはメッセージを表示して、表情をカスタマイズすることができます&の感じ。

$("#ajax-dialog").ajaxStart(function() { 
    $.blockUI({ message: '<h1>Loading...</h1>', baseZ: 2000 }); 
}); 

$("#ajax-dialog").ajaxStop(function() { 
    $.unblockUI(); 
}); 

(注)この場合のオプションbaseZ、この:全ページをブロック

$("#ajax-dialog").ajaxStart(function() { 
    $('#gender-dialog').block({ 
      message: '<h1>Loading...</h1>', 
      css: { border: '3px solid #a00' } 
     }); 
}); 

$("#ajax-dialog").ajaxStop(function() { 
    $('#gender-dialog').unblock(); 
}); 

DEMO

ダイアログ(ラジオ・ボックス付き)コンテンツをブロックオーバーレイのZインデックスです。デフォルト値は1000です。それをより高い値に設定しますそれをカバーするダイアログ。

DEMO

関連する問題