2014-11-21 40 views
1

我需要在選擇更改時更改輸入的需求。 我有我的表格上這個聲明:zend,從jquery中刪除require = true

$name = $this->addElement('text', 'name', array(
       'required' => true, 
       'label' => 'Name', 
       'filters' => array('StringTrim'), 
      )); 

我嘗試用PHTML文件(圖)jQuery的:

$('#select').change(function(){ 
    $('#name').prop('disabled', true); 
}) 

但不工作,輸入繼續需要。 任何人都可以嘲笑我嗎?

斯特凡

回答

1

您必須刪除從PHP端所需。

我可以建議你:

  1. 在你的表單中,添加一個隱藏的元素是這樣的:

    $change_select = new Zend_Form_Element_Hidden('change_select'); 
    $this->addElement($change_select); 
    
  2. 在你的JavaScript:

    $('#select').change(function(){ 
        $("#change_select").val("change"); 
    }) 
    
  3. 在你控制器,請嘗試如下所示:

    // $form is your form in your controller like : 
    // this $form = new Application_Form_Album(); 
    
    if ($this->getRequest()->isPost()) { 
        $formData = $this->getRequest()->getPost(); 
        if ($formData['change_select'] == 'change'){ 
         $form->getElement('name')->setRequired(false); 
        } 
        if ($form->isValid($formData)) { 
         .... 
    
+0

它部分工作。它看起來像一個非必需的但系統繼續顯示錯誤信息並不適用要求 – 2014-11-21 15:58:36

+0

您的錯誤信息是在PHP端還是JS端? – doydoy44 2014-11-21 16:01:03

+0

有沒有錯誤,只有系統沒有看到規則,並繼續假裝輸入 – 2014-11-21 16:06:58

0

嘗試刪除required屬性

$('#select').change(function(){ 
    $('#name').removeProp('required'); 
}) 
+0

無法工作,因爲財產不內聯 – 2014-11-21 12:30:42

+0

能否請你分享的HTML代碼。如果可能,請與您的問題陳述共享jsfiddle鏈接。 – 2014-11-21 12:40:44