0

grailsでremoteFieldajaxタグを使用しようとしたときに何かに気づきました。アンパサンド(&)を入力すると、パラメーター値を取得するときにその値がコントローラーで認識されません。

例: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入力をURLエンコードするJavaScriptを使用してプロパティを追加することをお勧めします。

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

次に、コントローラーでデコードする必要があります。

于 2012-06-13T14:37:06.397 に答える