Грааль удаленной формы, несколько представлений, с JavaScript - PullRequest
4 голосов
/ 24 июня 2010

У меня есть ситуация, когда у меня есть форма с несколькими кнопками отправки, и я хочу обновить удаленный фрейм. Я пытался использовать g:formremote с 2 g:actionsubmit кнопками (которые поддерживают javascript), но у кнопок многократной отправки есть сбой (описанный здесь: http://www.grails.org/Ajax в разделе «Несколько кнопок с formRemote»).

Я принял обходной путь, используя 2 g:submittoremote кнопки, которые работают так, как я ожидаю, но не принимают параметры javascript, такие как onClick (эти кнопки принимают / отклоняют, и я хочу установить AYS на отклонении, чтобы он не использовался случайно).

Есть ли способ, чтобы javascript и несколько кнопок отправки в удаленной форме могли мирно существовать?

Заранее спасибо за помощь ...

Ответы [ 2 ]

5 голосов
/ 25 июня 2010

Вы пробовали параметр before?Требуется функция JavaScript, которая будет выполнена перед удаленным вызовом функции.Просто используйте его так:

<g:submitToRemote value="Reject" update="feedback" 
                  controller="test" action="reject"
                  before="if (!confirm('sure?')) {return false;}" />

Какой бы JavaScript вы ни указали в параметре before, он будет вставлен в атрибут onclick непосредственно перед вызовом Ajax Updater.Таким образом, вы можете легко выполнить проверку, получить подтверждения и т. Д. И даже отказаться от обработки onclick перед отправкой вызова Ajax.Есть аналогичный after параметр.

3 голосов
/ 25 июня 2010

Ладно, я не говорю, что это прекрасно, но я просто возился с этим несколько минут, и у меня есть кое-что, что может сработать для вас.Как я уже сказал ... не самое красивое решение, но обходные пути редко бывают ...

 <html>
<head>
<g:javascript library="prototype" />
</head>
<body>
<script type="text/JavaScript">
function setReject()
{
  document.getElementById('reject').value='true'
}
</script>

<g:formRemote name="test" update="updater" url="[ controller: 'date', action: 'test']" >
    <g:hiddenField name="reject" value="false" />
    <g:submitButton name="submit" value="something" onclick="setReject();return confirm('Are you sure???')" />
    <g:submitToRemote update="updater" action="otherTest" controller="date" value="Go Ahead"/>
</g:formRemote>


<div id="updater">

</div>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...