2009-01-16 9 views
8

Unten ist Beispielcode, um ein Optionsfeldelement mit Ja/Nein-Optionen in Zend_Form zu erstellen. Irgendwelche Ideen, wie man die erforderliche Antwort auf Ja setzt, wenn also Nein ausgewählt wird, wird die Validierung fehlschlagen? Der folgende Code nimmt entweder Ja oder NeinZend_Form Funkelement

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

Antwort

6

Nicht sicher, ob dies der beste Weg ist, aber es funktionierte für mich:

$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

funktioniert super, danke – dittonamed

0

einen schnelleren Weg, obwohl dies nicht funktionieren würde für andere Situationen:

$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.")); 

Da „nein“ weniger als 3 Zeichen ist, wird dies fehlschlagen, wenn „ja“ gewählt. Es ist ein bisschen "hacky", aber ich mag diesen Weg, weil es weniger Code verwendet und auch die eingebauten Validatoren nutzt.

Verwandte Themen