2011-02-07 12 views
1

を働いていない私は持っている以下のスクリプト:jQueryのダイアログ適切

<script type="text/javascript"> 
$("#addLocation").dialog({ 
      autoOpen: false, 
     modal: true, 
     height: 700, 
     width: 550, 
     buttons: { 
      "Add Location": function() { 
       document.forms["mapform"].submit(); 
      }, 
      Cancel: function() { 
       $(this).dialog("close"); 
      } 
     }, 
}); 
</script> 

<script type="text/javascript"> 
function showLocationDialog() { 
    $("#addLocation").dialog("open"); 
} 
</script> 

<div id="addLocation" style="display:none;"> 
<form action="" method="post" name="mapform"> 
<input type="text" name="name" /> 
<input type="submit" /> 
</form> 
</div> 

<button onclick="javascript:showLocationDialog();">Add an address</button> 

はボタンがダイアログを開かないと...誰もが支援することができ、なぜ私が理解できないのですか?

おかげで、

答えて

3

待ちは準備ができて。

その初期化後div..theダイアログがすべてを隠しての世話をしますaddLocationからdisplay:none CSSを削除... $(document).ready()または$()ブロック

1

1 - $(document).ready() { ... });.dialog()初期化を入れてください。

2 - ボタンの値の後から余分なコンマを削除します。DOMのための

buttons: { 
      "Add Location": function() { 
       document.forms["mapform"].submit(); 
      }, 
      Cancel: function() { 
       $(this).dialog("close"); 
      } 
     }, <-- remove this, causes IE to spontaneously combust 
0

しようとする別のものに

をご.dialog()コードをスティックon document.ready

+1

これはあまりいい考えではありません。インラインCSSはdomが準備される前に*フォームを隠します。これには2つの利点があります。まず、ユーザーが何かを見ていないと見えなくなって見えなくなり、混乱してしまいます。 DOMが準備ができてdialog()がそれをすべて隠すときに再レンダリングします。 – davin

関連する問題