2012-04-01 73 views
1

我有下面的代碼在我的GSP我如何獲得grails remoteFunction的工作?

<select onChange="${remoteFunction(action:'superior', controller:'employee', params: '\'name=\' + this.value')}"> 
    <option>first</option> 
    <option>second</option> 
</select> 

具體而言,這段代碼是我_form.gsp文件。在EmployeeController的操作如下:

def superior() { 
    println 'in here' 
    println 'these are the params: ' + params 
} 

它可能看起來荒謬,但在這裏,我的目標只是能夠調用我的遠程操作,並通過所選擇的值。但是我沒有看到任何內容被打印到控制檯上。如果我按如下方式直接鍵入網址:

app-name/employee/superior 

我在輸出中看到了我的打印語句。那麼我在這裏錯過了什麼?我基本上遵循瞭如何從grails文檔(http://grails.org/doc/2.0.x/ref/Tags/remoteFunction.html)進行設置,並且我有了JQuery插件。 如果我在onChange事件(如警報)上使用簡單的javascript函數,它可以正常工作。所以我確定我的瀏覽器沒有關閉javascript,我已經用幾個瀏覽器實際測試過了。 我很確定它的東西很簡單,我很想念。提前致謝。

回答

1

對我來說,這段代碼在firefox和chrome中完美工作。所以我想你的網頁上有一個一般的javascript錯誤。用螢火蟲檢查。如果沒有錯誤,請仔細檢查選擇框的onchange標記的生成代碼。

+0

我檢查了與螢火蟲的JavaScript,我沒有看到一個錯誤。這是爲onchange生成的javascript jQuery.ajax({type:「POST」,data:「name =」+ this.value,url:「/ myapp/employee/superior」,success:function(data,textStatus) {},error:function(XMLHttpRequest,textStatus,errorThrown){}});'爲了測試這個,我實際上創建了一個全新的grails應用程序,只用名字和姓氏創建僱員域類,然後生成視圖和控制器。然後,我將選擇的代碼塊粘貼到我的_form.gsp中,並將操作粘貼到我的控制器中並進行測試。我錯過了一步嗎? – Mark 2012-04-01 16:28:44

+0

發生了HTTP請求嗎?你可以檢查使用螢火蟲?如果有,那麼你會在控制檯標籤中看到它。 – Chris 2012-04-01 16:51:45

+2

感謝您的提示。 Firebug說「JQuery沒有定義」所以我在網上尋找了一些類似的錯誤。我不得不將以下內容添加到我的main.gsp文件的頭部分。 ''然後我在控制檯上看到了我的輸出。所以感謝從另一個角度幫助我進行調試,我只是從我的源代碼進行調試。 – Mark 2012-04-01 17:41:00