2

アラートに到達して機能しますが、close メソッドが機能しません。理由はありますか?

私のJavaScript:

  var myDialog = $('#divContactUs');

  myDialog.dialog({
               autoOpen: false,
               title: "Send Us A Note:",
               modal: true,
               buttons: [{
                   id: "btn-send",
                   text: "Send",
                   click: function () {
                       // you can now use the reference to the dialog
                       myDialog.dialog("close");
                       alert('test');
                   }
               }]

           });
       });

そして私のhtml:

<div id="divContactUs" style="display:none">
Name: &nbsp <input type="text" name="Name" /><br />
Email: &nbsp <input type="text" name="Email" /><br />
Phone: &nbsp <input type="text" name="Phone" /><br />
Message:<br />
<textarea name="Message"></textarea>
</div>
4

3 に答える 3

2

ボタン クリックのスコープでは$(this)、モーダルではなくボタンを参照します。最初にモーダル セレクターを変数に設定し、後で参照します。

var myDialog = $('#divContactUs');

myDialog.dialog({
    autoOpen: false,
    title: "Send Us A Note:",
    modal: true,
    buttons: [{
        id:"btn-send",
        text: "Send",
        click: function() {
            // you can now use the reference to the dialog
            myDialog.dialog("close")
        }
    }
});
于 2013-07-27T21:11:29.493 に答える
0

あなたのスクリプトは機能しています。;行末にセミコロンを追加することを忘れないでください$(this).dialog("close");

これを証明するjsFiddleを次に示します。

于 2013-07-27T22:07:05.040 に答える