2009-01-16 13 views
8

Poniżej znajduje się przykładowy kod do utworzenia elementu przycisku radiowego z opcją Tak/Nie w Zend_Form. Wszelkie pomysły na temat ustawiania wymaganej odpowiedzi na Tak, więc jeśli wybrano opcję Nie, operacja nie powiedzie się? Poniższy kod będzie akceptować opcję Tak lub NieElement radiowy Zend_Form

$question= new Zend_Form_Element_Radio('question'); 
    $question->setRequired(true) 
     ->setLabel('Are you sure?') 
     ->setMultiOptions(array('Yes', 'No')); 

Odpowiedz

6

Nie wiem, czy jest to najlepszy sposób, ale dla mnie jest:

$questionValid = new Zend_Validate_InArray(array('Yes')); 
$questionValid->setMessage('Yes is required!'); 

$question = new Zend_Form_Element_Radio('question'); 
$question->setRequired(true) 
    ->setLabel('Are you sure?') 
    ->setMultiOptions(array('Yes'=>'Yes', 'No'=>'No')) 
    ->addValidator($questionValid); 
+0

działa świetnie, dziękuję – dittonamed

0

szybszy sposób, ale to nie będzie działać na inne sytuacje:

$question = new Zend_Form_Element_Radio('question'); 
$question->setRequired(true) 
    ->setLabel('Are you sure?') 
    ->setMultiOptions(array('Yes'=>'Yes', 'No'=>'No')) 
    ->addValidator('StringLength', false, array('min' => 3, 'messages' => "You must be sure.")); 

Ponieważ „nie” jest mniej niż 3 znaki, to nie uda, chyba że zostanie wybrany „tak”. To trochę "hacky", ale lubię to, ponieważ używa mniej kodu, a także korzysta z wbudowanych walidatorów.

Powiązane problemy