javascript - YII2 依赖字段

标签 javascript php yii2

我有 DropDownList:

  • 日历
  • 最后一天
  • 文本输入

我需要:

  • 如果用户选择“日历”,则会出现日历小部件
  • 如果“文本输入”,则会出现文本输入
  • 如果选择“最后一天”,则不会显示任何内容

我在网上找到了很多选项,但它们使用 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()',
]
);
?>

最佳答案

您可以使用 jQuery 来完成日历和文本输入小部件的显示和隐藏。

您编译的 HTML 可能如下所示:

<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元素直到它们被选择是通过简单的CSS完成的:

.hideable {
  display: none;
}

一点 JavaScript + jQuery 就可以处理小部件的隐藏和显示切换,如下所示:

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来演示。

关于javascript - YII2 依赖字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40696688/

相关文章:

javascript - 按下 'enter' 时,文本区域不会断行

php - 将内容保存到 mysql 数据库时出现撇号 "'“问题

php - 垂直显示 yii2 复选框列表

installation - Composer 安装错误:ZipArchive::extractTo():完整提取路径超过 MAXPATHLEN (260)

javascript - Toggle 仅在一位家长中上课

javascript - 使用 JQuery 将 bootstrap 中的行 col 替换为另一行并淡入淡出

php - 使用 PHP 的下拉菜单

php - PHP解析/语法错误;以及如何解决它们

php - Yii2 query all get value in join

javascript - 发电机 : Query Incorrect operand type