我有一个由选择/下拉列表组成的表单。我已将它们的默认值设置为-1。提交表单时,我想验证提交的值不等于默认值。我试过setRequired(true)
了,但据我所知,这只是添加notEmpty
验证器的一种方便方式,这并不是我真正想要的。
这是我的表格的一部分:
$select = new Zend_Form_Element_Select('myselect');
$select->setMultiOptions(array(
'-1' => 'Gender',
'0' => 'Female',
'1' => 'Male'
))
->addValidator(new Zend_Validate_Int(), false);
$this->setDefaults(array('myselect' => -1));
这是我的控制器:
if ($this->getRequest()->isPost()) {
$form = new My_Form_Contact();
if ($form->isValidPartial(array('myselect' => $this->getRequest()->getPost('myselect')))) {
// "myselect" is valid
}
我需要使用该isValidPartial
方法,因为我需要使用不同的逻辑,具体取决于哪些元素的值与其默认值不同。我想我需要的是一个 notEqual 验证器,但我找不到。我知道可以制作自己的验证器,但我想先问问是否有更简单的方法。我也看过Zend_Validate_Identical
,但我认为在这种情况下我不能使用它。
总结一下:如果提交的值不等于默认值,我只希望我的选择能够成功验证。