2011-08-13 88 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