2016-06-20 1 views
0

У меня возникли проблемы с кодом ниже. Хотя я могу сохранить значение «Автомобиль», я не могу сохранить ценность для «Других». Значение «Другое» задано как текстовое поле, в то время как «Автомобиль» предопределен.Yii 1.1 - раскрывающееся меню с расширенным текстовым полем

Любая помощь будет принята с благодарностью.

<div class="row"> 
      <?php echo $form->labelEx($model,'transport_allowance'); ?> 
      <?php echo $form->dropDownList($model,'transport_allowance',array('Car'=>'Car','Others'=>'Others'),array('onchange'=>'return muFun(this.value)')); ?> 
      <?php echo $form->error($model,'transport_allowance'); ?> 
</div> 


<div id="others" style="display:none"> 
      <div class="row"> 
      <?php echo $form->labelEx($model,'transport_allowance'); ?> 
      <?php echo $form->textField($model,'transport_allowance'); ?> 
      <?php echo $form->error($model,'transport_allowance'); ?> 
      </div>  
</div> 

<div id="car" style="display:none"> 
      <div class="row"> 
      <?php echo $form->hiddenField($model,'transport_allowance',array('value'=>'450')); ?> 
      </div>  
</div> 

<script> 
function muFun(obj){ 
      if(obj=="Car"){ 
      document.getElementById('car').style.display="block"; 
      document.getElementById('others').style.display="none"; 
      }else if(obj=="Others"){ 
      document.getElementById('others').style.display="block"; 
      document.getElementById('car').style.display="none"; 
      } 
    } 
</script> 

Я также пробовал следующий код, который не имеет успеха.

<div class="row"> 
      <?php echo $form->labelEx($model,'transport_allowance'); ?> 
      <?php echo $form->dropDownList($model,'transport_allowance',array(''=>'Select','600'=>'Car','Others'=>'Others'),array('onchange'=>'return muFun(this.value)')); ?> 
      <?php echo $form->error($model,'transport_allowance'); ?> 
</div> 

<div id="others" style="display:none"> 
      <div class="row"> 
      <?php echo $form->labelEx($model,'transport_allowance'); ?> 
      <?php echo $form->textField($model,'transport_allowance'); ?> 
      <?php echo $form->error($model,'transport_allowance'); ?> 
      </div>  
</div> 

<script> 
function muFun(obj){ 
      if(obj=='Others'){ 
      document.getElementById('others').style.display="block"; 
      }else{ 
      document.getElementById('others').style.display="none"; 
      } 
    } 
</script> 

Этот код сохранит только вход «Другие», но не «Автомобиль».

спасибо.

+0

Сумел создать обходной путь, добавив еще одно поле и вставки отдельно. – Enthu

ответ

0

Есть несколько ошибок в коде, пожалуйста, попробуйте ниже код

<div class="row"> 
     <?php echo $form->labelEx($model,'transport_allowance'); ?> 
     <?php echo $form->dropDownList($model,'transport_allowance',array('Car'=>'Car','Others'=>'Others')); ?> 
     <?php echo $form->error($model,'transport_allowance'); ?> 
    </div> 
    <div id="others" style="display:none"> 
      <div class="row"> 
       <?php echo $form->labelEx($model,'transport_allowance'); ?> 
       <?php echo $form->textField($model,'transport_allowance'); ?> 
       <?php echo $form->error($model,'transport_allowance'); ?> 
      </div>  
    </div> 
    <div id="car" style="display:none"> 
     <div class="row"> 
      <?php echo $form->hiddenField($model,'transport_allowance',array('value'=>'450')); ?> 
     </div>  
    </div> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#Vehicle_transport_allowance").change(function() { 
       if ($(this).val() == 'Car') { 
        $('#car').show(); 
        $('#others').hide();      
       } else { 
        $('#others').show(); 
        $('#car').hide(); 
       } 
     }); 
    }); 
</script> 
Смежные вопросы