【问题标题】:IF this === this AND this === this show/hide div JavascriptIF this === this AND this === this 显示/隐藏 div Javascript
【发布时间】:2021-10-19 13:12:57
【问题描述】:

我正在尝试创建一个 HTML/CSS/JS 表单以供离线使用。

到目前为止,我已经根据选择为div 功能创建了show()hide()

如果选择了ClothWhite,则显示一个div,但我无法让它工作。

下面是我的尝试:

if ($("#StartSelector").val() == "Cloth") &&
  if ($("#ColourField").val() == "White") {
    $('#Program').show();
    else {
      $('#Program').hide();
    }
  };
form {
  max-width: 900px;
  display: block;
  margin: 0 auto;
}
<form>
  <div class="form-group">
    <label for="StartSelector">What are you washing?</label>
    <select class="form-control" id="StartSelector">
      <option value="no">Select wash option</option>
      <option value="Cloth">Table Cloth & Napkins</option>
      <option value="HeavyDuty">Heavy Duty Work Wear</option>
      <option value="Kitchen">Kitchen Work Wear</option>
      <option value="Bed">Bed Linen</option>
      <option value="Curtains">Curtains</option>
      <option value="Bath">Bath Towels & Robes</option>
      <option value="Uniforms">Uniforms</option>
      <option value="Personal">Personal Clothing</option>
      <option value="Mops">Mops & Cleaning Textiles</option>
      <option value="Low">Filter for low temperatures</option>
    </select>
  </div>
  <div class="form-group" id="Colours">
    <label for="ColourDiv">Types of wash.</label>
    <select class="form-control" id="ColourField">
      <option value="no">Select wash option</option>
      <option value="White">White</option>
      <option value="Colours">Colours</option>
      <option value="Delicate">Delicate</option>
    </select>
  </div>
  <div class="form-group" id="Program" style="display: none;">
    <img src="Program1.png" alt="Program 1" width="auto" height="400">
  </div>
</form>

【问题讨论】:

  • 感谢您的反馈,但我不明白。
  • 应该是if (condition &amp;&amp; condition) 你有if (condition) &amp;&amp; another_if - 这就是你运行sn-p时出现语法错误的原因。更改为if ($("#StartSelector").val() == "Cloth" &amp;&amp; $("#ColourField").val() == "White") { - 在“布料”之后没有),没有第二个if

标签: javascript jquery if-statement listener onchange


【解决方案1】:

更新:感谢 TiiJ7freedomn-m 的 cmets 和建议

您必须按值搜索,而不是按 option 文本搜索。

该函数在 if 内有一个 if &amp;&amp; 运算符,因此需要进行调整。

你必须有一个监听器来捕捉这些select的变化并进行比较。

我假设您已经将 jquery 库添加到您的项目中。

function myFunction() {
  if ($('#StartSelector :selected').val() == 'Cloth' &&
    $('#ColourField :selected').val() == 'White') {
    $('#Program').show();
  } else {
    $('#Program').hide();
  }
}


$(function() {
  $('#StartSelector, #ColourField').on('change', myFunction);
});
form {
  max-width: 900px;
  display: block;
  margin: 0 auto;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js">
</script>
<form>
  <div class="form-group">
    <label for="StartSelector">What are you washing?</label>
    <select class="form-control" id="StartSelector">
      <option value="no">Select wash option</option>
      <option value="Cloth">Table Cloth & Napkins</option>
      <option value="HeavyDuty">Heavy Duty Work Wear</option>
      <option value="Kitchen">Kitchen Work Wear</option>
      <option value="Bed">Bed Linen</option>
      <option value="Curtains">Curtains</option>
      <option value="Bath">Bath Towels & Robes</option>
      <option value="Uniforms">Uniforms</option>
      <option value="Personal">Personal Clothing</option>
      <option value="Mops">Mops & Cleaning Textiles</option>
      <option value="Low">Filter for low temperatures</option>
    </select>
  </div>
  <div class="form-group" id="Colours">
    <label for="ColourDiv">Types of wash.</label>
    <select class="form-control" id="ColourField">
      <option value="no">Select wash option</option>
      <option value="White">White</option>
      <option value="Colours">Colours</option>
      <option value="Delicate">Delicate</option>
    </select>
  </div>
  <div class="form-group" id="Program" style="display: none;">
    <img src="Program1.png" alt="Program 1" width="auto" height="400">
  </div>
</form>

【讨论】:

  • 为什么需要includes?有一个字面值 Cloth 的选项
  • "firstly..." - $("select").val()$("select &gt; option:selected")[0].value 相同 - 即是所选选项的 value=,与文本无关,所以 .includes 只是令人困惑:confirmation
  • 其次,您完全跳过了实际问题 - OP 错误地使用了 &amp;&amp; 并悄悄地修复了它。
  • 感谢cmets,我根据建议对答案进行了一些调整。
  • 谢谢你,这是有道理的 =) 对于下一步,我是否需要为所有变体复制和粘贴函数 X 次,或者是否有一种简化的方式来执行此操作。不是在寻找解决方案,只是朝着正确的方向前进。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-06
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 2017-01-27
  • 2013-01-11
相关资源
最近更新 更多