請原諒複雜的標題。這是我的情況:我正在開發一個Grails應用程序,並將jQuery用於一些更復雜的UI內容。提交表單後Ajax調用父窗口
系統設置的方式,我有一個項目,它可以有不同的文件(用戶提供)與它相關聯。在我的Item/show視圖中,有一個添加文件的鏈接。這個鏈接彈出一個jQuery模式對話框,顯示我的文件上傳表單(遠程.gsp)。
因此,用戶選擇文件並輸入評論,當表單被提交時,對話框關閉,並且Item/show視圖上的文件列表被刷新。我最初通過添加
onclick="javascript:window.parent.$('#myDialog').dialog('close');"
到我的提交按鈕。
這工作得很好,但是當提交一些較大的文件時,最終會出現一個競爭條件,在保存新文件之前關閉對話框並刷新文件列表,從而導致文件列表過期(該文件仍然正確保存)。
所以我的問題是,什麼是確保對話框直到表單提交操作完成後才關閉的最佳方法?我嘗試過在Grails中使用 <g:formRemote
>標籤,並在「after」屬性中關閉對話框(根據Grails文檔,該腳本在表單提交後調用),但我收到一個錯誤(取自FireBug),聲明這
window.parent.$('#myDialog').dialog is not a function
這是一個簡單的JavaScript/Grails的語法問題,我很想念這裏,還是我要對這個完全錯誤的?
非常感謝您的時間和幫助!