【问题标题】:Jquery Ajax autocomplete: action of a controller not availableJquery Ajax 自动完成:控制器的操作不可用
【发布时间】:2012-08-31 04:35:26
【问题描述】:

我试图使用 jquery 和 ajax 创建一个自动完成字段。我尝试了下面的代码,但它给了我一个错误,即控制器的操作不可用。这是我的外部 .js 文件中的代码:

$(function () {
  $("#inputfield").autocomplete({
    source: '<g:createLink controller="fruit" action="findFruit">'
  });
});

这是来自我的 Fruit 控制器的代码:

def findFruit = {
  def fruitsearch= Fruit.withCriteria {
    ilike 'fruit', params.term + '%'
  }

  render (fruitsearch?.'fruit' as JSON)
}

我使用 firebug 来查看发生了什么,当我尝试在 texfield 上输入时,它说动作 findFruit 不可用。

我错过了什么吗?还是他们的代码有问题?谢谢

【问题讨论】:

  • 你定义了一个方法findFruit=但是调用了一个方法findFruit
  • 好的,那么他们的替代品是什么呢?
  • 您使用的是哪个版本的 grails,尝试将操作定义为方法而不是闭包 see this
  • 我使用的是 grails 2.0.1 版。
  • 好的,我尝试将其更改为 action 作为方法,即 def findFruit(){},但仍然出现相同的错误。

标签: ajax jquery-ui jquery grails


【解决方案1】:

由于您的 js 代码是从外部 js 文件评估的,因此您应该尝试使用纯 js 代码而不是 grails 标签(因为它们不起作用)

尝试使用相对路径,例如:

$( "#inputfield" ).autocomplete({
    source: '/app-name/controller/action'
});

看看这是否有效。

【讨论】:

    猜你喜欢
    • 2014-04-13
    • 1970-01-01
    • 1970-01-01
    • 2016-01-22
    • 1970-01-01
    • 1970-01-01
    • 2013-06-02
    • 2012-03-07
    • 1970-01-01
    相关资源
    最近更新 更多