2012-04-28 3 views
0

파견 할 수 있습니까?zend form validator onblur 요소를

양식을 제출할 때 트리거되는 간단한 유효성 검사기를 이미 작성했습니다. 동일한 유효성 검사기를 사용할 수는 있지만 입력 필드가 남아 있으면 바로 트리거해야합니다.

가능합니까? 파블로

답변

1

여기에 대해서는 가능한 한 가지 방법이 있습니다.

  • 폼 요소
  • 에 onblur 호출이 하나 개의 필드와 ZF 액션
  • 액션에 그 값이 그 요소, 또는 사용에 대한 유효성 검사기를 호출하는 것을 포함하는 아약스 요청을 전송에 자바 스크립트 onblur 이벤트를 추가 Zend_Form::isValidPartial 검증
  • 0의 결과를 반영하기 위해 JSON 응답 및 업데이트 HTML을 읽을 채워진 요소
  • 반환 아약스 전체에 유효/무효 및 선택적 오류 메시지
  • 를 나타내는 JSON 응답을 확인하는

희망이 있습니다.

+0

이 멋지다, 내가있을거야 그 위에. 차가운 :) – user968865

+0

+1, 이것이 바로 워크 플로우입니다. 기본 예제를 넣어 놨습니다. –

+0

대단 했어요! 여기에서도 도움을 받았다. http://mnshankar.wordpress.com/2010/05/30/using-ajax-jquery-to-validate-a-zend-form/ – user968865

1

이 작동 예제의 일부입니다 :

에게

가 백엔드 :

이 에게 이
class UserController extends Zend_Controller_Action 
{ 
    /* ... */ 
    public function validateAction() 
    { 
     if ($this->_request->isXmlHttpRequest()) { 
      $values = $this->_request->getParam('values'); 
      $form = new Form_User(); 
      $isValid = true; 

      if (!$form->isValidPartial($values)) { 
       $isValid = $form->getMessages(); 
      } 

      $this->_helper->json(array('errors' => $isValid)); 
     } 
    } 

    /* ... */ 
} 

프론트 엔드 (단지 아약스 호출 부분) 이벤트에 부착해야합니다

$.ajax({ 
      type: "POST", 
      url: "/user/validate/", 
      data: { 
      'values': $('#my-form-id').serialize() 
      }, 
      dataType: "json", 
      beforeSend:function(){ 

      }, 
      success: function(response){ 
      var result = response.errors; 

      if (result == true) { 
       // given fields are valid 
       // do some extra stuff here 
      } else { 
       // invalid 
       // do some extra stuff here 
       } 
      } 
      } 
     }); 
관련 문제