2013-02-15 2 views
5

Nach Ajax Anruf, ich bin div buf an einige Nachricht Box, aber Text erscheint, nachdem der Dialog wieder geöffnet wird. Auf Chrome, Firefox, IE 8, das funktioniert gut, aber nicht in ie 7..html Arbeit, aber Text erscheint nicht nach Ajax Anfrage


Bearbeitet: Ich habe ein Dialogfeld geöffnet beim Klicken auf einen Link. Dann mache ich eine Ajax-Anfrage und bekomme eine Nachricht. Diese Nachricht sollte nach dem Klicken auf eine Schaltfläche im Dialogfeld im Dialogfeld (in einigen Div) angezeigt werden. Aber in IE7 erscheint eine Meldung, nachdem das Dialogfenster wieder geöffnet wurde.

$("#promised_pay_dialog").dialog({ 
     buttons: { 
      "some button": function(){ 
       if ($('#confirm').is(':checked')) { 
        $.ajax({ 
         url: 'ajax/promisedPayment', 
         type: "POST", 
         data: { 
          subsId:$("#sid").val() 
         }, 
         success: function(buf){ 
          $('#message_box').html(buf); 
          return false; 
         } 
        }); 
       } 
       else { 
        alert("some message"); 
       } 
      }, 
      "some button": function() { 
       $(this).dialog("close"); 
      } 
     }, 
     show: { 
      effect: "blind", 
      duration: 1000 
     }, 
     hide: { 
      effect: "explode", 
      duration: 1000 
     }, 
     modal: true, 
     resizable: false, 
     width: 550, 
     height: 250 
    }); 

löste das Problem, aber nicht zufriedenstellend:

auf den Link, Anruffunktion createDialog("") ohne Argument klicken. Nach einer Ajax-Anfrage, Nachricht empfangen und createDialog(buf) anrufen. Aber ich denke, es ist keine gute Lösung. Irgendwelche Ideen?

function createDialog(mess){ 
    $('#message_box').html(mess); 
    $("#promised_pay_dialog").dialog({ 
     buttons: { 
      "some button": function(){ 
       if ($('#confirm').is(':checked')) { 
        $.ajax({ 
         url: 'ajax/promisedPayment', 
         type: "POST", 
         data: { 
          subsId:$("#sid").val() 
         }, 
         cache:false, 
         success: function(buf){ 
          createDialog(buf); 
         } 
        }); 
       } 
       else { 
        alert("some message"); 
       } 
      }, 
      "some button": function() { 
       $(this).dialog("close"); 
      } 
     }, 
     show: { 
      effect: "blind", 
      duration: 1000 
     }, 
     hide: { 
      effect: "blind", 
      duration: 1000 
     }, 
     modal: true, 
     resizable: false, 
     width: 550, 
     height: 250 
    }); 
} 
+1

ersetzt verbessern Bitte den Text, ist es unmöglich zu verstehen. – gdoron

+0

vielleicht etwas mit jquery-Version zu tun? Ich weiß, dass einige Unterstützung für ältere Versionen in 2.0 – Techmonk

+0

fallen gelassen wurde Ich habe ein Dialogfenster, das auf "a href" klickt. Dann antworte ich und erhalte eine Nachricht. Diese Meldung sollte im Dialogfenster (in einigen Div) erscheinen, nachdem Sie im Dialog auf die Schaltfläche geklickt haben. Aber die Nachricht erscheint, nachdem das Dialogfenster in IE7 wieder geöffnet wurde. –

Antwort

0

.html() ist, weiß, für Probleme mit IE6-8

Versuchen Sie, die folgende

$('#message_box').html(buf); 

mit

$('#message_box').empty().html(buf); 
Verwandte Themen