. */ class Staple_Form_Validate_Zip extends Staple_Form_Validator { const DEFAULT_ERROR = 'Zip Code is invalid.'; const REGEX = '/^\d{5}([\-]\d{4})?$/'; /** * * @param mixed $data * @return bool * @see Staple_Form_Validator::check() */ public function check($data) { if(preg_match(self::REGEX, $data)) { return true; } else { $this->addError(); return false; } } public function clientJQuery($fieldType, Staple_Form_Element $field) { switch ($fieldType) { case 'Staple_Form_SelectElement': $fieldid = "#{$field->getId()}"; $valstring = "#{$field->getId()} option:selected"; break; case 'Staple_Form_RadioGroup': $fieldid = "input:radio[name={$field->getName()}]"; $valstring = "input:radio[name={$field->getName()}]:checked"; break; case 'Staple_Form_CheckboxElement': return ''; break; default: $fieldid = "#{$field->getId()}"; $valstring = $fieldid; } $script = "\t//Zip Code Validator for ".addslashes($field->getLabel())."\n"; $script .= "\tif(!(".self::REGEX.".test($('$valstring').val())))\n\t{\n"; $script .= "\t\terrors.push('".addslashes($field->getLabel()).": \\n{$this->clientJSError()}\\n');\n"; $script .= "\t\t$('$fieldid').addClass('form_error');\n"; $script .= "\t}\n"; $script .= "\telse {\n"; $script .= "\t\t$('$fieldid').removeClass('form_error');\n"; $script .= "\t}\n"; return $script; } } ?>