Nach AJAX-Response mit jQuery können Formular-Daten nicht mehr gelesen werden

Klasse Phänomen mal wieder: Ich habe ein DIV gebaut, dass ein Formular mit einer SELECT-Box enthält. Bei Auswahl einer Option in der SELECT-Box wird per jQuery.ajax(); das DIV neu geladen und dynamisch im Inhalt ersetzt. Klappt bei allen Browsern super – nur der IE8 hat mich den Vormittag gekostet, bis ich mir den Response mal genau angeschaut hatte.

Das Formular bestand – vereinfacht dargestellt – aus folgendem Code:

<div class="mein_formular">
    <form method="post" action="ziel/" >
      <select name="auswahl">
          <option value="wert1">Wert 1</option>
          <option value="wert2">Wert 2</option>
      </select>
    </form>
</div>

Der jQuery-AJAX-Code sah ungefähr so aus:

var formular = $('.mein_formular form');
formular.find('select').change( function () {
   $.ajax( { url: formular.attr('action')+'?'+formular.serialize(), 
		 success: function ( data ) {
			$('.mein_formular').html( $('.mein_formular', data).html() );
                 }
   });

Im Internet Explorer 8 konnte ich den Ajax-Befehl genau ein Mal aufrufen, danach kam ich nicht mehr an die Daten von formular.serialize() heran. Erst ein genauer Blick in den Response brachte es heraus:
Der Befehl $(‚.mein_formular‘, data).html(); bringt in allen Browsern – außer IE8 – dieses richtige Ergebnis:

...<form method="post" action="ziel/" >...</form>...

Also: Alles korrekt. Im IE8 aber entfernt jQuery.html(); aus irgendeinem irrsinnigen Grund die Anführungszeichen der Tag-Attribute und macht daraus:

...<form method=post action=ziel/ >...</form>...

Und das wiederum interpretiert IE8 durch den Slash am Ende von ziel/ als Schliessen des Tags! Also so:

...<form method=post action=ziel /> ...

Konsequenz: Keine Chance, an die Daten eines leeren Formulars zu kommen. Vielen Dank, Microsoft!
Und die Lösung dazu? jQuery.html() nicht verwenden, sondern .contents() – mal wieder ein paar Buchstaben, die einem den halben Tag Nerven geraubt haben:

$('.mein_formular').html( $('.mein_formular', data).contents() );

Oder – alternativ – einfach das .html() weglassen – allerdings wird dann evtl. das umschliessende DIV gedoppelt.

$('.mein_formular').html( $('.mein_formular', data) );