Zend_Form: Элемент должен только требоваться, если флажок проверяется

Если Вы бросаете в HttpURLConnection, существует разъединение () метод. Если соединение будет неактивно, оно, вероятно, сразу разъединится. Никакие гарантии.

11
задан janoliver 16 September 2009 в 09:25
поделиться

3 ответа

I didn't actually run this, but it should work within reason. I've done something similar before that worked, but couldn't remember where the code was.

<?php

class My_Form extends Zend_Form
{
  public function init()
  {
    $checkbox = new Zend_Form_Element_Checkbox("checkbox");
    $checkbox->setValue("checked");

    $textField = new Zend_Form_Element_Text("text");

    $this->addElements(array("checkbox", "text"));

    $checkbox = $this->getElement("checkbox");

    if ($checkbox->isChecked() )
    {
       //get textfield
       $textField = $this->getElement("text");

       //make fields required and add validations to it.
       $textField->setRequired(true);
    }

  }

}
2
ответ дан 3 December 2019 в 08:56
поделиться

Мне было интересно, как это сделать и в ZF, хотя мне никогда не приходилось реализовывать такую ​​функцию формы.

Одна идея, которая приходит в голову, - создать собственный валидатор, который принимает поле флажка в качестве параметра, и запускать его в цепочке валидаторов, как документально . Если флажок установлен, валидатор может вернуть ошибку. Затем вы можете проверить, все ли проверки завершились неудачно, и только затем рассматривать форму как не прошедшую проверку.

Такой уровень настройки проверки формы может быть неудобным, поэтому, возможно, будет лучше использовать метод isValidPartial формы.

1
ответ дан 3 December 2019 в 08:56
поделиться

Вот что я делаю, если мне нужно проверить соответствие нескольких элементов друг другу

$f = new Zend_Form();

if($_POST && $f->isValid($_POST)) {
  if($f->checkbox->isChecked() && strlen($f->getValue('element')) === 0) {
    $f->element->addError('Checkbox checked, but element empty');
    $f->markAsError();
  }

  if(!$f->isErrors()) {
    // process
    ...
    ...
  }
}
2
ответ дан 3 December 2019 в 08:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: