У меня есть следующая проблема, которая, я думаю, связана с браузером. У меня есть профиль компании, и я хочу иметь возможность добавлять адреса некоторых штаб-квартир компании через ajax. Итак, я делаю следующее:
У меня есть выпадающий список, который содержит адреса:
<tr class="prop">
<td valign="top" class="name">
<label for="hasHeadquarters"><g:message code="company.headquarters.label" default="Company Headquarters" /></label>
</td>
<td valign="top" class="name">
<g:select id="hasHeadquarters" name="hasHeadquarters" optionKey="id" from="${de.cirquent.basicdata.Headquarter.list()}" multiple="multiple"></g:select>
</td>
</tr>
и форма для заполнения новых адресов:
<g:formRemote name="addHeadquarter" url="[controller:'company', action:'ajaxAddHeadquarter']" update="hasHeadquarters" onComplete="javascript:Form.reset('addHeadquarter');">
Целое подчиняется контроллеру:
def ajaxAddHeadquarter = {
def p = params
def hqInstance = new Headquarter(params.headquarter)
if(hqInstance.save(flush:true)){
// some messages
}
render(template:"/shared/updateHQList", params:params)
}
, который обновляет комбинированный список с шаблоном:
<g:select id="hasHeadquarters"
name="hasHeadquarters"
optionKey="id"
from="${de.cirquent.basicdata.Headquarter.list()}"
multiple="multiple"></g:select>
Как видите, простой сценарий, который работает в Chrome, Firefox (как 4.0, так и 5.0), но не работает в IE7 (еще не пробовал IE8). Под «не работает» я имею в виду: новая штаб-квартира / адрес успешно сохранены в БД, и возвращается список штаб-квартиры, включая новую. То, что происходит, - то, что comobox обновляется пустым combobox (никакие значения вообще, даже старые). После Ctrl + R на всей странице я вижу, что новый список добавлен в список.
Я использую версию Grails 1.3.7. версия prototype.js - 1.6.1. Исправлена ли эта проблема в IE7, и если да, я хотел бы знать, как это сделать. Это довольно нервно, потому что ошибка не возвращается - очевидно, prototype.js частично исключает исключения, поэтому я не могу видеть, что происходит.
Спасибо за помощь!