2012-02-02 3 views
1

필드에 오류를 표시하기 위해 제출할 때 displayFieldError을 사용하는 양식이 있습니다. 특정 오류 조건에서 컨테이너를 표시하거나 숨길 필요가 있습니다. js 액션을 체인화 할 수 있습니까?양식에 js 동작 체인 displayFieldError

+0

어떤 종류의 컨테이너입니까? '$ this-> downCall ('loadPOST')를 호출 해보십시오; $ this-> downCall ('validate');'. 그러면'$ form-> errors'를 사용해서 엉망이 될 수 있습니다. Form_Basic :: submit의 복사본을 사용하여 submit()을 완전히 다시 정의한 다음 원하는 방식으로 조정할 수도 있습니다. – romaninsh

+0

문제는 컨테이너가 아니라 'displayFieldError'입니다. 내부적으로 이것은 '$ f-> js() -> atk4_form ('fieldError', $ field-> short_name, $ message) -> execute();와 같은 것을 실행하며 다른 js 액션을 추가 할 수 없습니다. 모든 메서드를 다시 구현하지 않고도 ... –

답변

1

메서드 확장 및 재정의는 개체 지향 개발의 일반적인 방법입니다. 게다가 다음을 통해이를 수행 할 수 있습니다.

class Form extends Form_Basic { 
    function displayFieldError(){ 
     .. your actions .. 
    } 
} 

이것은 프로젝트 전체에서 작동하며 기능이 손실되지 않습니다.

0

Agile Toolkit의 모든 뷰는 jquery 클래스를 전달하며 jquery를 호출 할 수 있으며 체인 가능합니다.

하지만의 HTML 템플릿에 ID = NAME 속성을 구현해야 뷰 클래스를 확장 객체. 여기

는보기, 숨겨진되지 않습니다 텍스트 객체의 예 : 텍스트 객체는 자바 스크립트 기능을 가지고 있지만, 심지어 click 명령이 작동하지 않습니다 부착, 자체에서 작동하지 않습니다 자사의 명확한 것을

$t=$this->add('Text')->set('Press Buton To Hide Me'); 
$b=$this->add('Button'); 
$b->js('click', 
    $t->js()->hide() // hide it 
    )->univ()->successMessage('Hiding Text..'); // js chained 

.

여기 뷰의 또 다른 예입니다, 숨겨진 얻을 것이다 연장는 HTMLElement 클래스 :

$t=$this->add('P')->set('Press Buton To Hide Me'); 
$b=$this->add('Button'); 
$b->js('click', 
    $t->js()->hide() // hide it 
    )->univ()->successMessage('Hiding Text..'); // js chained 

두 소스를 검사하고 당신은 그 차이를 바로 볼 수 있습니다.

그러므로 컨테이너은 View 클래스의 클래스 확장이고 관련 템플릿에는 id="<?$_name?>" 구현이 포함되어 있는지 확인하십시오.

다른 간단한 방법이 확실하지 않습니다.

+0

또한 여기 내 대답을 확인하고 싶을 수도 있습니다. [SO-ATK4-Q & A] (http://stackoverflow.com/questions/8704789/agile-toolkit-crud-works- 완벽하게 - on-localhost-throws-error-on-server/8767117 # 8767117) 'fieldError'의 js() 버전을 구현하는'beforeModify()'함수를 취해 에 체인을 적당히 추가하는 js 호출 . –

+0

컨테이너에 문제가 없는데 (id가 있음) 완전히'displayFieldError' 메서드를 다시 구현하지 않고 js를 오류 처리에 추가하는 방법이 있는지 묻는 것이 었습니다. –