2011-06-21 14 views
0

私のサイトでは、電子メールを送信するために既に入力されたフォームをクリックしてダイアログを開くとボタンが表示されます。このフォームでは、私は "invia"と呼ばれるボタンを持ってメールを送信し、メールは正しく送信され、何が動作しないのは、メールを送信した後にダイアログを閉じることです。ここに私のコードをattacched:jquery uiダイアログボタンの問題

おかげさまで、

var $this = $(this); 

をしてあることをcloseにお電話を変更します:

$("#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を呼び出す前に

$this.dialog("close") 
+0

それは私の問題を解決しました!どうもありがとうございました! – haltman

関連する問題