submitToRemote
用途
创建一个按钮,提交一个周围的form表单作为远程的ajax调用和参数.
示例
在 "shop"应用程序中的一个contrller:
class BookController {
def list = { [ books: Book.list( params ) ] }
def show = { [ book : Book.get( params['id'] ) ] }
}
controller的使用方法:
<g:form action="show">
Login: <input name="login" type="text"></input>
<g:submitToRemote update="updateMe" />
</g:form>
<div id="updateMe">this div is updated by the form</div>
描述
属性
url
- 要提交 url ,要么是一个map,map里是action,controller 和
id 要么是一个字符串值.
update
(可选) - map 包含更新'success' 或者 'failure' 状态,
该元素由一个字符串更新而引起的failure events 将被忽略.
before
(可选) - JavaScript函数调用之前,远程函数调用.
after
(可选) - JavaScript函数调用之后,远程函数调用.
asynchronous
(可选) - 设置是否异步,同步. (默认为 true)
method
(可选) - 执行调用的方法. (默认为 "post")
事件
onSuccess
(可选) - 如果javascript 函数调用成功,将调用该函数.
onFailure
(可选) - 如果javascript 函数调用失败,将调用该函数.
on_ERROR_CODE
(可选) - JavaScript函数调用来处理特定的错误代 (如,
"404="alert('not found!')")
onUninitialized
(可选) - JavaScript函数调用
AJAX引擎未能初始化.
onLoading
(可选) - 当远程函数加载响应时,调用 javascript这个函数.
onLoaded
(可选) - 当远程函数加载完全加载后,调用 javascript这个函数.
onComplete
(可选) -
当远程函数完全包含更新的内容时,调用javaScript的这个函数.
来源
Show
Source
def submitToRemote = { attrs, body ->
// get javascript provider
def p = getProvider()
// prepare form settings
attrs.forSubmitTag = ".form"
p.prepareAjaxForm(attrs)
def params = [ onclick:remoteFunction(attrs) + 'return false',
type: 'button',
name: attrs.remove('name'),
value: attrs.remove('value'),
id: attrs.remove('id'),
'class':attrs.remove('class')
] out << withTag(name:'input', attrs:params) {
out << body()
}
}