zend form表单校验失效
gezp 2015-10-13 11:19:20 问题1:提交时校验没有反映
问题2:不知道返回按钮怎么写
以下是代码
<?php
class Oi_Form_User extends Zend_Dojo_Form
{
public function init()
{
/* Form Elements & Other Definitions Here ... */
$this->setMethod('post');
// 登录ID
$username = $this->createElement('TextBox','username');
$username->setLabel('登录名称:');
$username->setRequired(true);
$username->addValidator('stringLength',false,array(5,20));
$username->addErrorMessage('请输入5个以上字母或2~6个以上汉字!');
$this->addElement($username);
// 密码
$pwd = $this->createElement('PasswordTextBox','password');
$pwd->setLabel('密码:');
$pwd->setRequired(true);
$pwd->addValidator('stringLength',false,array(6));
$pwd->addErrorMessage('密码至少有6个字符');
$this->addElement($pwd);
//确认密码
$pwd2 = $this->createElement('PasswordTextBox','password2');
$pwd2->setLabel('确认密码:');
$pwd2->setRequired(true);
$pwd2->addValidator('identical',false,array('token'=>'password'));
$pwd2->addErrorMessage('两次密码不一致!');
$this->addElement($pwd2);
// 性别
$sex = $this->createElement('radio','sex');
$sex->setLabel('性别:');
$sex->addMultiOptions(array('0'=>'女','1'=>'男'));
$this->addElement($sex);
// 生日
$birthday = $this->createElement('DateTextBox','birthday');
$birthday->setLabel('生日:');
$birthday->setRequired(true);
$this->addElement($birthday);
// 是否结婚
$marriage = $this->createElement('Radio','marriage');
$marriage->setLabel('婚姻状况:');
$marriage->addMultiOptions(array('1'=>'是','0'=>'否'));
$this->addElement($marriage);
// 住址
$address = $this->createElement('TextBox','address');
$address->setLabel('住址:');
$address->setRequired(true);
$address->addValidator('stringLength',false,array(5));
$address->addErrorMessage('住址不能为空!');
$this->addElement($address);
// QQ
$qq = $this->createElement('TextBox','qq');
$qq->setLabel('QQ:');
$qq->setRequired(true);
$qq->addValidator('int',false,array(5));
$qq->addErrorMessage('请输入至少5个有效数字!');
$this->addElement($qq);
// 角色
$role = $this->createElement('RadioButton','role');
$role->setLabel('角色:');
$role->addMultiOptions(array('admin'=>'管理员','order'=>'订餐'));
$this->addElement($role);
// 手机
$telephone = $this->createElement('TextBox','telephone');
$telephone->setLabel('手机:');
$telephone->setRequired(true);
$telephone->addValidator('int',false,array(11));
$telephone->addErrorMessage('请输入11位手机号码');
$this->addElement($telephone);
// 座机
$phone = $this->createElement('TextBox','phone');
$phone->setLabel('座机:');
$phone->setRequired(true);
$phone->addValidator('int',false,array(7));
$phone->addErrorMessage('请输入电话号码!');
$this->addElement($phone);
$submit = $this->createElement('SubmitButton','提交');
$this->addElement($submit);
}
controller 如下
public function registerAction()
{
// 初始化Form
$formUser = new Oi_Form_User();
$formUser->removeElement('role');
if($this->getRequest()->isPost()){
if($formUser->isValid($_POST)){
$data = $formUser->getValues();
// 初始化model
$modelUser = new Oi_Model_User();
$userId = $modelUser->createUser($data);
if($userId){
$this->_redirect('/user/');
}
}
}
$this->view->formUser = $formUser;
}