Index: /Users/darien/Documents/src/Zend/Form/Element/Multi.php =================================================================== --- /Users/darien/Documents/src/Zend/Form/Element/Multi.php (revision 9570) +++ /Users/darien/Documents/src/Zend/Form/Element/Multi.php (working copy) @@ -241,4 +241,33 @@ return $value; } } + + /** + * Extends on to the parent implementation in order to check that the value + * or values presented have been registered as valid options. + * + */ + public function isValid($value, $context = null){ + // Do normal validation + $result = parent::isValid($value,$context); + + // Add an extra check + $validValues = array_keys($this->getMultiOptions()); + if(is_array($value)){ + foreach($value as $v){ + if(!in_array($v,$validValues)){ + $this->_messages[] = "One of the multiple values recieved ($v) is not a valid option."; + $result = false; + } + } + }else{ + if(!in_array($value,$validValues)){ + $this->_messages[] = "Value recieved ($value) is not a valid option."; + $result = false; + } + } + + + return($result); + } }