2013-09-26 295 views
0

我是Zend 2中的新成員。我創建了一個註冊表單並使用jQuery表單驗證插件來驗證它。現在我想檢查電子郵件是否已經存在(使用zend 2和jQuery表單插件)。任何人都可以幫我實施這個。Zend2表單驗證jQuery表單驗證插件

回答

0

$( '寄存器形式')驗證({ 規則:{

   email: { 
        required: true, 
        email: true, 
        remote: { 
         url: baseUrl+'/login/emailcheck', 
         type: 'POST', 
         data: { 
          mail: function(){ return $("#email").val(); } 
         }, 
        } 
       }, 

      }, 

      messages: { // custom messages 

       email: { 
        required: "Email is required.", 
        remote: 'Email already Exists.' 
       }, 

      }, 

     }); 

和的LoginController,

公共函數emailcheckAction(){

 $email = $_POST['mail']; 
     $result = $this->getRegistrationInfoTable()->getEmail($email); 
     if($result){ 
      $value = false; //'Email already exists'; 
     }else{ 
      $value = true; 
     } 
     $result = new JsonModel(array(
      'response' => $value 
     )); 

     return $result; 
} 

和我編輯了jquery.validate.js以響應json數組。 現在它工作正常:)

0

我不知道jQUery.FormValidation,但我知道我將如何去關於這種功能。這與ZF1基本相同。

我會寫一個自定義動作,如partialValidationAction(),它給出了一個參數element。現在到那個行動,你會在你的表格中輸入POST。在動作內部,由於它的參數爲element,因此您只需將表單的validationGroup設置爲僅包含這一個元素,然後驗證表單。

如果元素已驗證,則操作將簡單地返回true,如果驗證返回false,則操作將包含錯誤消息的JSON對象。所以每當你得到一個帶有錯誤信息的JSON對象時,將它們添加到你的表單元素中就完成了。

我會這樣做,有幾個原因,一個是可維護性。 IIRC從jQuery formValidation需要在JS代碼中設置規則,對吧?這意味着你必須在兩個不同的地方維護你的驗證規則,這通常是一件壞事,並且總會導致規則不匹配。