2014-11-21 2 views
1

선택 변경시 입력 조건을 변경해야합니다. 내 양식이 선언이 : 입력이 필요합니다 계속zend에서 jquery에서 require = true를 제거하십시오.

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

하지만 작동하지 :

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

내가 PHTML 파일 (보기)에서 jQuery로 시도합니다. 누구나 나를 도와 줄 수 있습니까?

스테파

답변

1

당신은 PHP 측에서 필요한 제거해야합니다. 이 같은 숨겨진 요소를 추가, 양식에서

  1. :

    $change_select = new Zend_Form_Element_Hidden('change_select'); 
    $this->addElement($change_select); 
    
  2. 를 자바 스크립트에서 :

    난 당신이 제안 할 수

    $('#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

부분적으로 작동합니다. 필요하지는 않지만 시스템은 오류 메시지를 계속 표시하고 요구 사항을 적용하지 않습니다. –

+0

오류 메시지가 PHP 쪽 또는 JS 쪽입니까? – doydoy44

+0

오류가없고, 시스템 만 규칙을 보지 않고 입력을 가장하는 것을 계속합니다. –

0

봅니다 제거하는 required 속성

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

속성이 인라인이 아니기 때문에 작동하지 않습니다. –

+0

당신은 HTML 코드를 공유 할 수 있습니까? 가능한 경우 문제 진술과 jsfiddle 링크를 공유하십시오. –

관련 문제