2012-04-04 7 views
1

Ich bin in der Show-Ansicht eines Controllers und wenn ein Benutzer auf einen Link klickt, wird ein Popup-Fenster mit einem Formular angezeigt. Wenn der Benutzer auf "Senden" klickt, wird das Formular über AJAX an eine benutzerdefinierte "Aktion" im selben Controller gesendet. Im action.js.erb Teil habe ich den folgenden Code:Wie schließe ich ein Popup-Fenster nach dem Senden einer AJAX-Anfrage an Rails Controller ohne Nachladen Eltern

window.opener.location.reload(); 
    window.close(); 

Es funktioniert gut, aber die ganze Show Ansicht Seite neu geladen wird. Und ich möchte nur den Fokus zurück und schreibe einige div Updates in der js.erb teilweise.

Antwort

1

Verwenden Sie jquery, um es nach Abschluss zu verbergen.

1

Anstatt von Helfer zu rufen, schließen Sie das Fenster onsuccess Ereignis von Ajax.

success: function(g) { 
    window.close(); OR $('#popup_id').hide(); 
    $('#div_id').html("Write message or other response form your action"). 
} 
+0

Leider löst dies nicht das Problem, onsuccess js wird im Kontext von Popup platziert (da das Formular dort ist), 'window.close()' schließt das Popup und das Hauptfenster ist immer noch nicht fokussiert – Alex

+0

Also das Problem war, dass Div, die ich aktualisieren möchte, ist im Hauptfenster und ich kann nicht darauf zugreifen von einem Popup js, aber diese Frage geht in eine andere Richtung, etwas wie http://stackoverflow.com/questions/6264907/check-wenn-ein-Popup-Fenster-ist-geschlossen – Alex

0

Fügen Sie in der zugehörigen action.js.erb-Datei den folgenden Code hinzu.

Verwandte Themen