javascript - 如何隐藏基于复选框的值,包括选中时必需的值(包括下拉框版本)

标签 javascript jquery html checkbox dropdownbox

我希望在选中复选框时显示文本区域,在未选中复选框时隐藏文本区域。 界面可以运行,但复选框不可点击。

$(document).ready(function() {
  $('#ifbroken').change(function() {
    if (this.checked)
      $('#dvchk').fadeIn('slow');
    else
      $('#dvchk').fadeOut('slow');
  })
});
#dvchk {
  display: none
}
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous">
</script>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
<div class="input-field col s12">
  <input type="checkbox" id="ifbroken">
  <label for="ifborken">If Broken</label>
</div>

<div class="input-field col s12" id="dvchk">
  <label for="Problem">Problem</label></br>
  </br>
  <textarea name="Problem" style="width:600px; height:200px;"></textarea>
</div>

<div class="input-field col s12" id="dvchk">
  <label for="ActionTaken">Action Taken</label></br>
  </br>
  <textarea name="ActionTaken" style="width:600px; height:200px;"></textarea>
</div>

<div class="input-field col s12" id="dvchk">
  <label for="BuyOff">Buy Off</label></br>
  </br>
  <textarea name="BuyOff" style="width:600px; height:200px;"></textarea>
</div>

最佳答案

您有多个相同的 ID、无效的 HTML 以及加载的 jQuery 文件过多

这有效

我将 ID 更改为类,修复了标签中的拼写错误和无效的 </br>

我还将内联样式移到样式表中

function toggleField() {
  $fld = $(".dvchk").find(":input").prop("required", this.checked);

  if (this.checked) $('.dvchk').fadeIn('slow'); // there is alas no fadeToggle(boolean)
  else $('.dvchk').fadeOut('slow');
}
$(function() {
  $('#ifbroken').on("click", toggleField)
});
.dvchk {
  display: none
}

textarea {
  width: 600px;
  height: 200px;
}
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<form>
  <div class="input-field col s12">
    <input type="checkbox" id="ifbroken">
    <label for="ifbroken">If Broken</label>
  </div>

  <div class="input-field col s12 dvchk">
    <label for="Problem">Problem</label><br /><br />
    <textarea name="Problem"></textarea>
  </div>

  <div class="input-field col s12 dvchk">
    <label for="ActionTaken">Action Taken</label><br /><br />
    <textarea name="ActionTaken"></textarea>
  </div>

  <div class="input-field col s12 dvchk">
    <label for="BuyOff">Buy Off</label><br /><br />
    <textarea name="BuyOff"></textarea>
  </div>
  <input class="dvchk" type="submit" />
</form>

关于javascript - 如何隐藏基于复选框的值,包括选中时必需的值(包括下拉框版本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60501485/

相关文章:

javascript - 在工具提示 Highcharts 中显示分组系列的数据

javascript - 使用不同的投影将 OpenLayers 多边形转换为 GeoJSON

javascript - 附加跨度不起作用

html - 下拉列表在第一次点击时闪烁,弹出窗口打开和关闭速度很快

javascript - 显示在 div 外部的图像溢出 :hidden

javascript - 将点击事件绑定(bind)到点击

jQuery 将六个输入字段作为一组进行验证

jquery - 如何在 JQuery 中显示加载图像?

JavaScript(HTML5) 游戏引擎

javascript - Node.js:记录忽略的错误