0

当我尝试在 grails 中使用 remoteField ajax 标记时,我注意到了一些事情。当我输入与号 (&) 时,在获取参数值时,我的控制器无法识别该值。

示例:我将输入 Cat & Dog 我看到的内容:Cat

我怎样才能避免这种情况?这是一个已知的错误?我在网上找不到任何关于此的内容。

编辑

我很确定这是由于 url 编码和参数造成的,因为 & 符号通常是参数分隔符。只是不知道如何解决这个问题。

<g:remoteField action="getName" update="testDiv" paramName="search" name="nameSearchResults" value="" />

控制器:

def getName() {
    println "Search result = " + params.search
    //When typing "Cat & Dog" I get:
    //Search result = C
    //Search result = Ca
    //Search result = Cat
    //Search result = Cat 
    //Search result = Cat
}
4

1 回答 1

1

您是否尝试过对您的文本进行 URL 编码remoteField

我建议before使用 JavaScript 添加一个属性来对输入进行 URL 编码:

<g:remoteField action="getName" update="testDiv" paramName="search" name="nameSearchResults" value="" before="encodeURIComponent(this.value); return true;" />

然后,您必须在控制器中对其进行解码。

于 2012-06-13T14:37:06.397 回答