【问题标题】:Send data from .gsp to controller将数据从 .gsp 发送到控制器
【发布时间】:2016-10-04 05:36:09
【问题描述】:

我需要使用 js 或 ajax 从 .gsp 页面中的文本输入向控制器发送数据。我在 gsp 页面中的代码是

 <input placeholder="<g:message code="form.search.label"/>" id="q" name="q" type="text" onkeypress=validar(event);>
 <button class="button"><span class="mif-search"></span></button>

js函数是:

 <script type="text/javascript">
function validar(event){
    var theCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
    var message = $('#q').val();
    if (theCode == 13){           
        
        <g:remoteFunction controller="search" action="search" params="message" update="pageid"/>          
}
}

此代码工作正常,我希望刷新我的页面,但我需要将输入文本中的数据发送到我的控制器。我在网上冲浪,但我无法解决这个问题。为此我需要做什么?

【问题讨论】:

  • &lt;g:remoteFunction /&gt; 不适合从 javascript 块中使用。相反,其中一个选项是使用 jQuery.ajax()。有关示例,请参阅api.jquery.com/jquery.ajax
  • 您使用的是什么版本的 Grails?它有所作为......
  • 我用的是 2.5.3 Grails 版本

标签: javascript ajax grails controller gsp


【解决方案1】:

我强烈建议使用jQuery.ajax(); 而不是g:remoteFunction,因为在一天结束时。 g:remoteFuncion 将被渲染为 jQuery.ajax();。例如,你有这个:

<g:remoteFunction controller="search" action="search" params="message" update="pageid"/>

这将是:

jQuery.ajax({type:'POST', url:'/YOURGRAILSAPPNAME/search/search',success:function(data,textStatus){jQuery('#pageid').html(data);},error:function(XMLHttpRequest,textStatus,errorThrown){}});

您可以测试查看网页中的 HTML。

但如果你真的想使用g:remoteFunction。你可以用这个

var message = $('#q').val();
if (theCode == 13)
    <g:remoteFunction controller="search" action="search" params="'message='+message" update="pageid"/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-22
    • 2019-07-25
    • 2015-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多