2011-10-11 71 views
1

我有一個gsp頁面(模板),我需要包含一些JavaScript。在下面的例子中,我將如何讓remoteFunction理解,moneyTransId將由javascript函數設置? MoneyTransId在警報中表現良好,但我無法讓它在remoteFunction中工作,顯然需要以某種方式逃避它。grails gsp javascript整合,如何轉義變量?

<script type="text/javascript"> 
function confirmVoid(moneyTransId) { 
    var r = confirm("Please confirm the void"); 
    if (r == true) { 
     alert("ID is: " +moneyTransId); 
     ${remoteFunction(action:"voidTransaction", id:moneyTransId)}; 
      ... 

回答

2

使用以下語法:

${remoteFunction(action:'voidTransaction', params:'\'id=\'+moneyTransId')}; 

這樣一來,你就不會混合使用客戶端代碼服務器端代碼。 希望這有助於。

+0

感謝mjavault,這工作。非常感激。 – Ray

0

服務器端變量和語句無法讀取客戶端(javascript)變量。 首先運行服務器端代碼,然後生成html和javascript併發送到客戶端(瀏覽器)。然後瀏覽器呈現HTML並運行JavaScript。希望這有助於你的思維過程。 德米特里。

+0

謝謝德米特里。請注意,我只想讓remoteFunction離開moneyTransId,就像moneyTransId一直留在警報中一樣。這樣,當confirmVoid函數運行時,moneyTransId的值可以在任何remoteFunction擴展到的內部設置。那有意義嗎? – Ray

+0

我想我明白,但是您不能在javascript ID的remoteFunction中設置moneyTransitId。它必須是一個字符串文字:試試'moneyTransId' – dbrin

+0

是的,我做了,還有其他一些我能想到的變化。沒有骰子。爲什麼它不能讓變量「通過」到JavaScript函數? – Ray