3
即使表單元素不是必需的,是否有辦法讓驗證器觸發?Zend Framework表單元素驗證器 - 即使不需要也驗證字段
如果另一個表單元素(它是幾個單選按鈕)的值具有選定的特定值,那麼我想要驗證texbox的內容(確保不爲空)。現在我通過覆蓋我的表單類的isValid()函數來實現這個功能,並且效果很好。但是,我想將其移至驗證程序或使用回調驗證程序。這是迄今爲止我所擁有的,但它似乎永遠不會被調用,除非我將該字段更改爲我不想在任何時候執行的setRequired(true),僅當其他表單元素的值設置爲特定值。
// In my form class's init function
$budget = new Zend_Form_Element_Radio('budget');
$budget->setLabel('Budget')
->setRequired(true)
->setMultiOptions($options);
$budgetAmount = new Zend_Form_Element_Text('budget_amount');
$budgetAmount->setLabel('Budget Amount')
->setRequired(false)
->addFilter('StringTrim')
->addValidator(new App_Validate_BudgetAmount());
//Here is my custom validator (incomplete) but just testing to see if it even gets called.
class App_Validate_BudgetAmount extends Zend_Validate_Abstract
{
const STRING_EMPTY = 'stringEmpty';
protected $_messageTemplates = array(
self::STRING_EMPTY => 'please provide a budget amount'
);
public function isValid($value)
{
echo 'validating...';
var_dump($value);
return true;
}
}
如果不是這種'''器setAllowEmpty(真)'''? – Tom 2011-07-21 17:30:07
它的setAllowEmpty(FALSE)與其看起來似乎具有誤導性。 – Chayemor 2013-06-12 20:39:14