2011-04-08 57 views
1

我是比較新的Javascript和新的Ajax和DWR從JavaScript處理退出 - 我懷疑這是一個JavaScript的問題,而不是阿賈克斯/ DWR,但這裏有雲:後如何DWR爲基礎的驗證

我正在編寫使用DWR調用遠程Java方法來驗證在瀏覽器中輸入的一些數據的Javascript。如果驗證失敗(Java方法返回一個錯誤消息(非空字符串),我想向用戶顯示一條錯誤消息並且不再執行Javascript處理。如果驗證成功(Java方法返回空字符串)我想在我的Javascript中繼續處理用戶的輸入

我在找的是一個驗證錯誤,顯示錯誤消息,但Javascript處理不停止,它繼續,如果驗證成功。所以我的問題是我怎麼結束的Javascript處理時驗證失敗。(「答:」在下面的代碼)

這是Javascript和僞代碼的組合,但它應該說明我在做什麼

感謝您的幫助,

史蒂夫

MyRemoteService.validateData(myData, { 
    callback:function(str) { 
     if (str) { 
     // A: show an error message 
      return; 
     }       
    } 
    }); 


// pseudocode - this is what I want to happen: 

if (validation error) 
    // don't do anything else 
} 

// Data was valid - continue to do stuff 
+1

你試過簡單的'return false;'?很難說沒有看到實際的JavaScript。 – 2011-04-08 12:26:30

回答

3

使得DWR調用同步解決了這個問題:

MyRemoteService.validateData(myData, { 
    async: false, 
    callback:function(str) { 
     if (str) { 
     // A: show an error message 
      return; 
     }       
    } 
    }); 
0

據我可以理解你的帖子,

你想執行一些java腳本代碼,只有在你從後端得到結果後,如果它的成功或錯誤信息!(我是對的還是缺少什​​麼)

如果是這樣,請在dwr回調函數中寫入您的javascript代碼。所以,只有結果來自後端,他們纔會被調用。