The Grails Framework 2.4.4

See the light - agile, industrial strength, rapid web application development made easy

(Quick Reference) # remoteFunction The formFunction tag and other Ajax related tags have been deprecated and will be removed from a future version of Grails. Applications may provide their own Ajax tags and/or Javascript plugins may provide Ajax tags of their own. ## Purpose Creates a remote JavaScript function that can be assigned to a DOM event to call the remote method ## Examples Example controller for an application called `shop`:

    class BookController {    def list() {
            [books: Book.list(params)]
        }    def show() {
            [book: Book.get(params.id)]
        }    def bookByName() {
            [book: Book.findByName(params.bookName)]
        }
    }
Example usages for above controller:
    $('mydiv').onclick = <g:remoteFunction action="show" id="1" />
Example as a method call in GSP only:
    <select onchange="${remoteFunction(action: 'bookByName',
                           update: [success: 'great', failure: 'ohno'],
                           params: '\'bookName=\' + this.value')}">
        <option>first</option>
        <option>second</option>
    </select>
Example changing the asynchronous option to false:
    <select from="[1,2,3,4,5]" onchange="${remoteFunction(action: 'bookByName',
                                     update: [success: 'great', failure: 'ohno'],
                                     options: '[asynchronous: false]'}" />
## Description This tag writes a Javascript function call that fires an AJAX request. The exact Javascript used to fire off the AJAX request depends on which Javascript library is used. This tag also requires the use of either the <g:javascript/> or <g:setProvider/> tags. See the AJAX section of the user guide to find out more. Attributes `action` (optional) - the name of the action to use in the link; if not specified the default action will be linked `controller` (optional) - the name of the controller to use in the link; if not specified the current controller will be linked `id` (optional) - The id to use in the link `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. A semi-colon is automatically added so you don't have to provide one yourself in this string. `after` (optional) - The JavaScript function to call after the remote function call. A semi-colon is automatically added so you don't have to provide one yourself in this string. `asynchronous` (optional) - Whether to do the call asynchronously (defaults to `true`, specified in 'options' Map) `method` (optional) - The method to use the execute the call (defaults to POST, specified in 'options' Map) Events `onSuccess` (optional) - The JavaScript function to call if successful `onFailure` (optional) - The JavaScript function to call if the call fails `onERROR_CODE` (optional) - The JavaScript function to call to handle the specified error code (e.g. `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 | Quick Reference (hide)