2009-01-16 59 views
8

以下是在Zend_Form中使用「是/否」選項創建單選按鈕元素的示例代碼。關於如何將所需答案設置爲是的任何想法,所以如果選擇否,它會驗證失敗?下面的代碼將接受是或否。Zend_Form無線電元件

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

回答

6

不知道這是最好的方式,但它的工作對我來說:

$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

很好,謝謝 – dittonamed 2009-01-16 22:29:52

0

更快的方法,儘管這不會爲工作其他情況:

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

由於「否」少於3個字符,除非選擇「是」,否則這將失敗。這有點「黑客」,但我喜歡這種方式,因爲它使用較少的代碼,也使用內置的驗證器。