我使用jQuery驗證來驗證我的形式,我的代碼是這樣的 -回調方法來獲取有效的參數
$('form#Register').validate({
rules:{
email:{
required:true,
email:true,
remote:{
url:"CheckEmail",
type:"post",
data:{
email:function(){
return $('input#email').val();
}
}
}
},captcha:{
required:true,
remote:{
url:"CheckCaptcha",
type:"post",
data:{
captcha:function(){
return $('input#captcha').val();
}
},success:function(data){
if(data.validCaptcha){
return true;
}else{
return false;
}
}
}
}
}
});
如果郵件已經與應用程序或不regisgtered我檢查操作CheckEmail。並通過動作CheckCaptcha驗證驗證碼。這兩個網址都發生了相同的操作。其中有私人領域。
public class BaseAction {
private boolean validMail;
private boolean validCaptcha;
private String email;
private String captcha;
--Getters and setters
public String checkMail(){
UserService uService = new UserServiceImpl();
if(uService.getUserByEmailID(getEmail())!=null){
setValidMail(false);
}else{
setValidMail(true);
}
return success;
}
public String checkCaptcha(){
HttpServletRequest request = ServletActionContext.getRequest();
String captchaStored = (String)request.getSession().getAttribute("captcha");
logger.info(captchaStored+" = "+getCaptcha());
if(captchaStored!=null&&captchaStored.equals(getCaptcha())){
setValidMail(true);
}else{
setValidMail(false);
}
return success;
}
}
問題是jQuery驗證只能期待值真或假的反應,但我的行動給出了這樣的迴應 -
{"captcha":null,"email":"[email protected]","validCaptcha":false,"validMail":true}
我認爲這是Struts動作的默認行爲返回的值全部私人財產。
現在的問題是 -
有沒有辦法告訴Struts動作,我想有效 驗證碼或validMail爲真或假的唯一價值。或
jquery驗證中是否有任何回調函數,以便我可以進一步處理響應數據,並且可以檢查郵件或驗證碼,並告訴驗證程序它是有效的還是無效的。
我想你不明白我的問題,這個答案只說我的文檔中獲得或通過互聯網沒有回答我的問題 – 2014-11-19 11:47:24
@RaviKumar,我猜你真的不明白我的答案或文檔,因爲您的OP中的代碼是錯誤的,我已經清楚地解釋了這一點。 **您不需要'data'或'success'參數,並且您的服務器端腳本*必須*返回一個布爾值或JSON字符串。**在進行這些修改之前,您的代碼將失敗。 – Sparky 2014-11-19 15:40:39