Zend_Form radyo eleman

2 Cevap php

Aşağıda Zend_Form Evet / Hayır seçenekleri ile bir radyo düğmesi öğesi oluşturmak için örnek kod. Herhangi Evet gerekli cevabı ayarlamak için, bu yüzden Hayır seçilirse, bu doğrulama başarısız olacak nasıl fikir? Aşağıdaki kodu kabul edecektir Evet veya Hayır ya

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

2 Cevap

Bu en iyi yoldur, ama bu benim için çalıştı eğer emin değil:

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

Bir hızlı yolu, bu diğer durumlar için işe yaramaz olsa:

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

"Hayır" 3 karakterden az olduğundan "evet" seçildiği sürece, bu başarısız olur. Bu biraz "hacky", ama daha az kod kullanır ve aynı zamanda yerleşik onaylayıcıların kullanımını kolaylaştırır, çünkü ben bu şekilde seviyorum.