3

Ich habe ein Formular, das content in einem div mit id gewickelt ist:Inhalt verschwindet mit Jquery Ajax-Update im Internet Explorer

<div id="content"> 
    <%= render :partial => 'shared/signup' %> 
</div> 

shared/_signup.html.erb enthält:

<%= form_tag sign_me_up_path, :remote => true do %> 
... 
<% end %> 

Wenn die Benutzer sendet das Formular und es gibt Fehler, ich render create.js.erb, die nur enthält:

$("#content").html("<%= escape_javascript(render :partial => 'shared/signup') %>"); 

Mit int ernet explorer das entfernt einfach alle Inhalte in #content, aber es funktioniert gut in allen anderen Browsern. Ich würde jede Hilfe/Einsicht schätzen.

+0

Was passiert, wenn Sie '$ (" # content "). Html ('foo')'? Erscheint 'foo' in '# content' oder ist das div noch leer? Haben Sie JavaScript-Debugging-Tools in IE installiert? Können Sie die Antwort des AJAX-Anrufs prüfen? Wenn ja, sollte "<% = escape_javascript (...)%>" 'wahrscheinlich nur eine HTML-Markup-Zeichenfolge sein. Was siehst du? – Samo

Antwort

2

ich die gleiche Muster- Remote Form Vorlage verwenden, Javascript-Reaktion, die eine teilweise macht und füllt die html eines div mit JQuery (1.4.4). Ich sah das gleiche Verhalten in IE, aber es stellte sich heraus, dass es aufgrund eines Tippfehlers im HTML-Teil war.

Die anderen Browser waren einfach besser im Umgang mit einem nicht geschlossenen Span-Tag. Ich vermute, Sie haben ein ähnliches Problem - validieren Sie das gerenderte HTML Ihres Partials.

+0

Das habe ich auch berücksichtigt, aber er rendert das gleiche partielle wie das, was beim ersten Seitenladen gerendert wurde. Wenn der IE es einmal rendern kann, könnte es ein zweites Mal rendern. Aber ich denke, es lohnt sich zu überprüfen. – Samo

+0

Das war das Problem - danke. – James

-1
+0

Ich bezweifle, dass das sein Problem ist. Dieser Artikel behandelt Callbacks, die nach AJAX-Aufrufen nicht ausgelöst werden. Er hat keine Callbacks, da sein Controller einfach eine js.erb-Vorlage rendert ... – Samo

+0

@Samo, ich dachte mir, es war es wert, James einige Wege zu geben, um herauszufinden, warum es nicht funktioniert. Ich habe ein wenig nach Problemen in Bezug auf IE und Inhalte gesucht, die nicht gerendert werden, und http://www.stjhimy.com/posts/7-creating-a100-ajax-crud-using-rails-3-and-unobtrusive-javascript, speziell der Auszug "Ps1: Das nutzt html5, um unsere Formulare und Links remotes zu machen (: remote => true), also wird es in keiner Version von INTERNET EXPLORER noch funktionieren." Lassen Sie mich glauben, dass es sich lohnt, bestehende Probleme zwischen Remote-Links und IE zu untersuchen. Ich persönlich fand das eine nützliche Antwort. =) – clemensp

Verwandte Themen