2016-11-19 75 views
0

我的DropDownList:YII2相關字段

  • 日曆
  • 最後一天
  • 文本輸入

我需要:

  • 如果用戶選擇 「日曆」 ,日曆小工具出現
  • 如果「輸入文字」,在文本輸入時,出現
  • 如果「最後一天」被選中,沒有出現

我在網上找到了許多選擇,但他們使用AJAX,不幸的是,我不能讓它在我的情況下工作。

我認爲它可以用JavaScript來解決。

這裏是我的PHP:

<?php 
    $js = 'function Go(){ alert("ok!");}'; 
    $this->registerJs($js, yii\web\View::POS_READY); 
?> 

<?php echo $form->field($model, 'condition')->dropDownList($conditionList, 
[ 
    'id' => 'condition', 
    'class' => 'dependent-input', 
    'onchange' => 'Go()', 
] 
); 
?> 
+0

您已經表達了需求,但具體而言,您的問題是什麼?你有沒有試過編寫JavaScript? jQuery聽起來像一個不錯的選擇。有關編輯問題的幫助,請參閱「[如何提出一個好問題](http://stackoverflow.com/help/how-to-ask)」。 – jacefarm

+0

是的,我試過使用jQwery,但我無法去工作 – AstureS

+1

如果您發佈了jQuery代碼,它將幫助其他人與您協作尋找解決方案。 – jacefarm

回答

1

您可以使用jQuery來完成顯示您的日曆和文本輸入小部件和隱藏。直到他們選擇用簡單的CSS實現

<select class="hide-and-show" name="show-and-hide"> 
    <option selected disabled>Choose one</option> 
    <option value="calendar">Calendar</option> 
    <option value="text-input">Text Input</option> 
    <option value="last-day">Last Day</option> 
</select> 

<div class="calendar hideable">CALENDAR GOES HERE</div> 
<div class="text-input hideable">TEXT INPUT GOES HERE</div> 

隱藏.hideable元素:

.hideable { 
    display: none; 
} 

而且一些JavaScript + jQuery的可以處理

編譯的HTML可能是這個樣子切換隱藏和顯示小部件,如下所示:

var closerClass = "last-day"; 

$(".hide-and-show").change(function() { 
    var selectValue = $(this).val(); 

    if (selectValue === closerClass) { 
    $(".hideable").hide(); 
    } else { 
    var classname = "." + selectValue; 
    $(classname).show(); 
    } 
}); 

我創建了一個Codepen example來演示。