Mam taki kod.
Kod
$(document).ready(function() {
  
      var myClose=function(hash){
          hash.w.css('opacity',0.88).show();
          $("#jQuery_promotionBody").replaceWith("Wypełnij formularz a na podany adres e-mail otrzymasz kod" +
                                                               "<form>" +
                                                               "<fieldset name=\"form\">" +
                                                               "<legend>Formularz zgłoszeniowy</legend>" +
                                                               "<p><label>Adres e-mail: </label><input type=\"text\" name =\"email\" id=\"email\" /></p>" +
                                                               "<p><input type=\"submit\" value=\"Wyślij\" /></p>" +
                                                               "</fieldset>" +
                                                               "</form>");
          return true;
      };
  
      $('#dialog').jqm();
      
      $('form').submit(function(){
          $.post("index/promotion/",    
          { email: $('#email').val() },
          function(data){
              $("#jQuery_promotionBody").replaceWith(" " + data.result);
          },
          "json");
          return false;
      });
  });


jesli zrobię: $('#dialog').jqm(onHide: myClose);
to po zamknieciu okienka tresc pozostaje, nie pojawia się na nowo formularz

SOLUTION: .replaceWith usuwa element i nie ma możliwośc jego późniejszej edycji bo go poprostu nie ma, lepiej korzystać z .html()