(Quick Reference)
formRemote
Purpose
Creates a form tag that uses a remote uri to execute an Ajax call, serializing the form elements and falling back to a normal form submit if JavaScript is not supported.
Examples
Example controller for an application called "shop":
class BookController {
def show() {
[book: Book.get(params.id)]
} def byAuthor() {
[books: Book.findByAuthor(params.author, params)]
}
}
Example usages for this controller:
<g:formRemote name="myForm" on404="alert('not found!')" update="updateMe"
url="[controller: 'book', action:'show']">
Book Id: <input name="id" type="text" />
</g:formRemote><div id="updateMe">this div is updated with the result of the show call</div>
<g:formRemote name="myForm" update="updateMe"
url="[controller: 'book', action: 'byAuthor',
params: [sort: 'title', order: 'desc']]">
Author: <input name="author" type="text" />
</g:formRemote><div id="updateMe">this div is updated with the result of the byAuthor call</div>
You can override both the form method and action to use when JavaScript is unavailable by providing
method
and
action
attributes. This example will submit the form to
/<context>/book/show
using a GET if JavaScript is unavailable:
<g:formRemote name="myForm" update="updateMe" method="GET"
action="${createLink(controller: 'book', action: 'show')}"
url="[controller: 'book', action: 'show']">
Book Id: <input name="id" type="text" />
</g:formRemote><div id="updateMe"></div>
Description
Attributes
name
(required) - The name of the form. This attribute will be assigned to id
attribute if not present, otherwise, the value of this attribute will be omitted
url
(required) - The url to submit to as either a Map (containing values for the controller, action, id, and params) or a URL string
id
(optional) - The id of the form rendered to the output. If id
is not set, the value of name
will be assigned
action
(optional) - The action to execute as a fallback, defaults to the url if not specified
update
(optional) - Either a Map containing the elements to update for 'success' or 'failure' states, or a string with the element id to update, in which case failure events would be ignored
before
(optional) - The JavaScript function to call before the remote function call
after
(optional) - The JavaScript function to call after the remote function call
asynchronous
(optional) - Whether to do the call asynchronously (defaults to true
)
method
(optional) - The method to use the execute the call (defaults to POST)
Events
onSuccess
(optional) - The JavaScript function to call if successful
onFailure
(optional) - The JavaScript function to call if the call fails
on_ERROR_CODE
(optional) - The JavaScript function to call to handle the specified error code (eg on404="alert('not found!')")
onUninitialized
(optional) - The JavaScript function to call if Ajax fails to initialise
onLoading
(optional) - The JavaScript function to call when the remote function loads the response
onLoaded
(optional) - The JavaScript function to call when the remote function completes loading the response
onComplete
(optional) - The JavaScript function to call when the remote function completes, including any updates
Source