Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Libraries > Agreement checkbox ZendForm


Автор: Reptor 29.3.2011, 21:41
Код

$validatorNotEmptyAgreement = new Zend_Validate_NotEmpty();
        $validatorNotEmptyAgreement->setMessage('You have to accept our terms and conditions before you register');
        $agreement = new Zend_Form_Element_Checkbox('agreement');
        $agreement->setLabel('I agree to terms and conditions')
            ->addValidator($validatorNotEmptyAgreement)->setRequired(true);
        $this->addElement($agreement);


В чем может быть проблема что если я не выделяю чекбокс и никакого предупреждения нету. Успешно проходит регистрацыя.. что тут не так???
Должо же быть предупреждение You have to accept our terms and conditions before you register

Автор: Nigel 30.3.2011, 00:53
setRequired это и есть notEmpty, если хотите свое сообщение об ошибке, то нужно для элемента формы использовать метод addErrorMessage

Автор: Reptor 30.3.2011, 02:36
сделал

Код

 $agreement = new Zend_Form_Element_Checkbox('agreement');
        $agreement->setLabel('I agree to terms and conditions')
            ->setRequired(true)
            ->setDecorators($this->agreementDecorator)


всеровно никаои ошибки :( я не понимаю что не так 

Автор: Nigel 30.3.2011, 03:05
и где addErrorMessage?
Код

$agreement = new Zend_Form_Element_Checkbox('agreement');
        $agreement->setLabel('I agree to terms and conditions')
            ->setRequired(true);
$agreement->addErrorMessage('You have to accept our terms and conditions before you register');
$this->addElement($agreemnt);// $this - экземпляр формы

// далее в коде
if($form->isValid()) {
// остальные действия
}

Автор: Reptor 30.3.2011, 18:33
Код

 $agreement = new Zend_Form_Element_Checkbox('agreement');
        $agreement->setLabel('I agree to terms and conditions')
            ->setRequired(true)
            ->addErrorMessage('You have to accept our terms and conditions before you register')
            ->setDecorators($this->agreementDecorator)
            //->setAttribs(array('class' => 'agreement_checkbox'))    

            ;
        $this->addElement($agreement);


Попрежнему ничего.. все остальные елементы нормально выводят сообшения об ошыбке.. кроме етого.. не понимаю :( вот что не так

Автор: Nigel 31.3.2011, 00:16
а если убрать
Код

setDecorators($this->agreementDecorator)

?

Автор: Reptor 31.3.2011, 01:14
Цитата(Nigel @  31.3.2011,  00:16 Найти цитируемый пост)
а если убрать
Выделить всёкод PHP
1:
    
setDecorators($this->agreementDecorator)

? 



тот же результат .. не понимаю.. ??

Автор: Nigel 31.3.2011, 16:08
Для чекбокса оказывается нужно указать
Код

$agreement->setUncheckedValue('');

Автор: Reptor 31.3.2011, 18:29
Nigel, 
Да точно.. вместо пустои строки приходил 0.. я уже думал свои валидатор делат smile

Спасибо.. работает

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)