微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ajax – 调用remoteForm只用onChange事件更新一个div

我想动态地在textField中输入数据时更新div内容.
我尝试过以下方法

<g:formRemote name="changeText" on404="alert('not found!')" update="resultDiv"
    url="[ controller: 'results',action:'results' ]">
        <g:textField onChange="submit();" name="text"/>
</g:formRemote>

一切都工作,除了新的页面是渲染和div没有更新…

def results = {
   render "new content"
}

解决方法

以下GSP代码

<g:formRemote name="changeText" on404="alert('not found!')" update="resultDiv"
          url="[ controller: 'results',action:'results' ]">

将使用onSubmit方法生成一个新的HTML表单,如下所示:

<form id="form_id" action="/action" method="post" onsubmit="jQuery.ajax({type:'POST',data:jQuery(this).serialize(),url:'/action',success:function(data,textStatus){jQuery('#resultDiv').html(data);},error:function(XMLHttpRequest,textStatus,errorThrown){}});return false">

因此,将触发AJAX调用的Javascript代码位于onSubmit()方法上.

这里的问题是你使用Javascript调用submit()动作,这不会触发onSubmit()方法.

解决方案是直接在onChange事件中调用onSubmit()方法

<g:textField onChange="this.form_id.onsubmit();" name="text"/>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐