将数据从 .gsp 发送到控制器

Send data from .gsp to controller

我需要使用 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"/>          
}
}

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

我强烈建议使用 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"/>