В примере на Modalbox ошибка проверки уже скрыта в лайтбоксе:Неверный адрес электронной почты!
поэтому я думаю, что если вы хотите использовать проверку Grails, вам придется самостоятельно контролировать форму.В этом случае плагин лайтбокса будет отвечать только за рисование лайтбокса, а вы предоставите все содержимое формы.
Я использую Boxy (еще один плагин лайтбокса, который должен работать аналогично вашему Modalbox), и вот примеркак я использую валидацию Grails в лайтбоксе.Когда я создаю лайтбокс, я использую действие «shell», чтобы заполнить его.Действие оболочки отображает шаблон, а внутри шаблона находитсякоторый рисует форму поиска в первый раз.вызывает действие проверки и перерисовывает содержимое лайтбокса с результатами действия проверки.Результатами могут быть либо страница успеха, либо страница ошибки проверки.
Использование объекта команды, в данном примере SearchCommand, только для демонстрации.
Контроллер:
def launchLightbox = {
render template: 'lightboxFrame'
}
def lightboxContents = { SearchCommand cmd ->
// if the search failed, re-draw the search form with validation errors
if (cmd.hasErrors()) {
return [cmd: cmd]
}
// the search succeeded. Show the results within the lightbox
else {
render template: 'searchResults', model: [results: cmd.results]
}
}
_lightboxFrame.gsp:
<g:formRemote name="searchLightbox"
url="[action: 'lightboxContents']" update="lightboxContentsDiv">
<div id="lightboxContentsDiv">
<g:include view="/yourController/_lightboxContents.gsp"/>
</div>
</g:formRemote>
_lightboxContents.gsp:
<g:renderErrors bean="${cmd}"/>
<p>Enter your search:</p>
<g:textField name="search" value="${cmd?.search}"/>
<g:submitButton name="submitButton" value="Submit"/>
Если вы хотите больше контроля над тем, чтоЧтобы выполнить поиск в случае успешного или неудачного поиска, например, для отображения ошибок проверки при сбое или закрытия лайтбокса при успехе, вам, вероятно, потребуется написать собственный обратный вызов javascript.
Отчасти это связано с этой проблемой,и это может быть полезно для вас, это плагин Grails Remote Constraints .Я не пробовал это некоторое время, но вы должны иметь возможность использовать его для асинхронной перерисовки частей вашей страницы с ошибками проверки, генерируемыми Grails.