Цепочка действия js в форме displayFieldError - PullRequest
1 голос
/ 02 февраля 2012

У меня есть форма, которая использует displayFieldError при отправке для отображения ошибок в полях. Мне нужно показать / скрыть контейнер при определенных условиях ошибки, возможно ли связать с ним действие js?

Ответы [ 2 ]

1 голос
/ 03 февраля 2012

Расширение и переопределение методов является обычной практикой в ​​объектно-ориентированной разработке. Кроме того, вы можете сделать это глобально, создав следующее:

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

Это будет работать в вашем проекте и не потеряет никакой функциональности.

0 голосов
/ 03 февраля 2012

все виды в Agile Toolkit содержат класс jquery, способны вызывать jquery и могут быть цепными.

НО объект, расширяющий класс представления ДОЛЖЕН реализовать атрибут ID = NAME в своем HTML-шаблоне.

Вот пример представления, текстового объекта, который не будет скрыт:

 $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

ясно, что текстовые объекты имеют возможность javascript, но не будут работать сами по себе, даже присоединение команды click НЕ будет работать.

вот еще один пример представления, расширенного класса HtmlElement, который WILL будет скрыт:

 $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, а связанный с ним Template содержит реализацию id="<?$_name?>".

Я не уверен в каком-либо другом более простом способе.

...