2011-08-13 58 views
0

我创建窗体元素是这样的:如何防止没有必填字段的表单提交?

$element = $this->CreateElement('select', 'countries'); 
$element->setLabel('Countries'); 
$element->setAttrib('required', true); 
$element->addMultiOptions(array(''=>'Select', '1'=>'Aus','2'=>'UK',....)); 

下面的代码提交表单:

// form 
$form = new SomeForm(); 

// get request 
$request = $this->getRequest(); 

// isPost 
if($request->isPost()) { 

    // isValid 
    if($form->isValid($request->getPost())) {    
     $values = $form->getValues();  
     // Save values into database here          
    } else {    
     $this->view->msg = "Required Fields are missing."; 
    } 

} else {   
    $this->view->msg = 'Form is not submitted properly'; 
} 

当我填写表格妥善然后将它保存记录到数据库成功。但是在不选择国家的时候,也提交表格。我想我应该显示“必填字段丢失”。消息,而不是在缺少必填字段时将值插入数据库。

我在想什么?

感谢

回答

5

这条线:

$element->setAttrib('required', true); 

并没有真正做你认为它(它设置HTML属性)。

你可能想

$element->setRequired(true); 

(这是假设你使用Zend_Form的,它不是从您发布的代码完全清楚)。

+0

是的,我正在使用Zend_Form – Student

+0

是的。它正在工作。谢谢 – Student