2011-11-12 66 views
0

我有一個簡單的註冊表單使用jquery mobile & jquery-validate。jquery手機表單響應處理

如果用戶輸入正確的用戶名和密碼,我將它們重定向到他們的儀表板。 如果他們錯過了一個字段,客戶端驗證會將其選中。

我的問題是當服務器端驗證拒絕用戶註冊。 例如,用戶名已準備就緒。

在這種情況下,我使用錯誤消息在服務器上呈現頁面。

在客戶端,我看到原始頁面轉換和新頁面轉換。 新頁面顯示正確的錯誤消息。 我的腳本如何啓動客戶端驗證不生效。

我的猜測是在頁面上同時有兩個具有相同ID的元素。 因此,舊的再次得到驗證運行,然後轉移。

我該如何處理?

這裏是腳本中使用新的頁面作爲驗證選擇上下文

$('#registerPage').live('pagecreate', function (event) { 
    $("#registerForm").validate({ 
     rules: { 
      username: "required", 
      password: "required", 
      confirmPassword: { 
       required: true, 
       equalTo: "#password" 
      } 
     } 
    }); 
}); 

回答

1

固定它。

var rps = rps || {}; 
rps.register = rps.register || {}; 
rps.register.validate = function (context) { 
    $("#registerForm", context).validate({ 
     rules: { 
      username: "required", 
      password: "required", 
      confirmPassword: { 
       required: true, 
       equalTo: "#password" 
      } 
     } 
    }); 
}; 

$(document).on('pageshow', '#registerPage', null, function (event, ui) { rps.register.validate(); }); 
$(document).on('pagehide', '#registerPage', null, function (event, ui) { rps.register.validate(ui.nextPage); });