2012-06-13 33 views
0

我注意到了一些當我試圖在grails中使用remoteField ajax標記時。當我輸入&符號(&)時,在獲取參數值時,我的控制器中無法識別該值。Grails - 遠程字段和&號

例子:我輸入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 
} 
+0

您可以請發佈代碼示例嗎? – lkaradashkov

+0

已添加。謝謝您的幫助。 – user82302124

回答

1

有你在remoteField試圖編碼的文字網址?

我會建議增加一個before財產使用JavaScript URL編碼輸入:

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

這樣您就可以給它的控制器進行解碼。

+0

我從remoteField拉取原始param.searchField值。它截斷了&符號及其後的所有內容。我需要從視圖中修改作爲參數傳遞的字符串。 – user82302124

+0

好的 - 所以我建議你做的是使用JavaScript編碼你的remoteField中的文本,然後在你的控制器中解碼。要將JavaScript函數附加到您的remoteField,請使用'before'屬性。 (這似乎是IE的問題...你有沒有試過Chrome和/或Firefox?) – lkaradashkov