2011-06-21 179 views
0

在我的網站上,我有一個按鈕,當它被點擊時打開一個對話框,其中已經有一個表單用於發送電子郵件。在這種形式下,我有一個名爲「invia」的按鈕來發送郵件,郵件發送正確,什麼不起作用,發送電子郵件後它正在關閉對話框。這裏附上我的代碼:jquery ui對話框按鈕的問題

在此先感謝您的幫助。

$("#invio_mail").live("click", function() { 
if (m=="") //that's to prevent multiple dialog opening 
{ 
    $.post("./php/testo_mail_xml.php", 
     {contratto:contratto, piatta:piatta, testo:"stampa_login"}, 
     function(xml) 
     { 
      if ($(xml).find("status").text()==1) 
      { 
       $("#ris_dial").load("./schemi/sch_mail.htm"); 
       delay(function() { //that's a function for delay population 
        scorriDati(xml, "forMail"); //that's function for populate 
       }, 500); 
       var dm = { 
       modal: true, 
       height: 'auto', 
       width: 'auto', 
       title: "<span class='ui-icon ui-icon-info'></span> Invio Mail", 
       closeOnEscape: false, 
       buttons: {"Invia": function() { 
          $.post("./php/mail.php", 
           {dati:$("#forMail").serialize()}, 
           function(xml) 
           { 
            if ($(xml).find("status").text()==1) 
            { 
             //var opt={close:true}; 
             //$("#ris_dial").dialog(opt); 
             $(this).dialog("close"); //this is not wrking code 
            } 
            else 
             $(this).append($(xml).find("errore").text()); 
           },"xml" 
          ); 
         } 
        } 
      }; 
       $("#ris_dial").dialog(dm); 
      } 
      else 
      { 
       $("#ris_dial").empty().append($(xml).find("errore").text()); 
       $("#ris_dial").dialog(dialogError); 
      } 
     }, 
     "xml" 
    ); 
    m++; 
} 
}); 
+0

你想關閉對話框或不從您的問題不明確 – Devjosh

+0

@Devjosh:感謝您回答我想要的狀態== 1(電子郵件正確發送)該對話框關閉。 – haltman

回答

2

this變化$.post()

內保存this上下文打電話之前post

var $this = $(this); 

和您的通話切換到close是:

$this.dialog("close") 
+0

解決了我的問題!非常感謝你! – haltman