首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当选择了另一个选择器的值时,如何隐藏另一个选择器?

问当选择了另一个选择器的值时,如何隐藏另一个选择器?
EN

Stack Overflow用户
提问于 2019-05-22 20:06:53
回答 4查看 64关注 0票数 1

当选择了另一个选择器的值时,我想隐藏一个选择器

我已经尝试了下面的代码,但是它不能工作

我的jquery代码:

​

代码语言:javascript
复制
$(document).ready(function () {
    if ($('#Soort').val() == "Bordspellen") {
        $('#Categorie_computer').hide();
        $('#4').hide();
    }
});
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label id="2">Wat speelt u meestal?</label>
<select id="Soort" name="Soort">
    <option value="">Kies...</option>
    <option value="bordspel">Bordspellen</option>
    <option value="computer">Computergame's</option>
</select>

<br>

<label id="4">Welke Categorie Computergame speelt u meestal?</label>
<select id="Categorie_computer" name="Categorie_computer">
    <option value="">Kies...</option>
    <option value="Sport">Sport games</option>
    <option value="Adventure">Adventure games</option>
    <option value="War">War games</option>
    <option value="Stategisch_computer">Strategische games</option>
</select>

​

我希望如果在标签id为2的选择器中选择了"Bordspellen“,标签为id为4的选择器将隐藏

EN

回答 4

Stack Overflow用户

发布于 2019-05-22 20:11:53

将change事件添加到您的第一个select标记中,并检查所选的选项值。如果是bordspel,则隐藏另一个选择器。

​

代码语言:javascript
复制
$('#Soort').on('change', function() {
  if ($(this).val() === 'bordspel') {
    $('#4, #Categorie_computer').hide();
  } else {
    $('#4, #Categorie_computer').show();
  }
});
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label id="2">Wat speelt u meestal?</label>
<select id="Soort" name="Soort">
  <option value="">Kies...</option>
  <option value="bordspel">Bordspellen</option>
  <option value="computer">Computergame's</option>
</select>

<label id="4">Welke Categorie Computergame speelt u meestal?</label>
<select id="Categorie_computer" name="Categorie_computer">
  <option value="">Kies...</option>
  <option value="Sport">Sport games</option>
  <option value="Adventure">Adventure games</option>
  <option value="War">War games</option>
  <option value="Stategisch_computer">Strategische games</option>
</select>

​

票数 2
EN

Stack Overflow用户

发布于 2019-05-22 20:13:25

你的代码有两个问题:

1)将select元素的值与'Bordspellen‘进行比较,但分配给该选项的值是'bordspel’。这种比较永远不会是真的。你应该检查'#Soort‘的值是否等于'bordspel’。

2)在加载文档时检查初始值,但这样做不会在做出不同的选择时通知您。要实现这一点,您需要侦听change事件。

我已经更新了你的代码来解决这两个问题。我希望这能说明这一点。

​

代码语言:javascript
复制
$('#Soort').change(function() {
    if ($('#Soort').val() == "bordspel") {
        $('#Categorie_computer').hide();
        $('#4').hide();
    } else {
        $('#Categorie_computer').show();
        $('#4').show();    
    }
});
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label id="2">Wat speelt u meestal?</label>
<select id="Soort" name="Soort">
    <option value="">Kies...</option>
    <option value="bordspel">Bordspellen</option>
    <option value="computer">Computergame's</option>
</select>
<label id="4">Welke Categorie Computergame speelt u meestal?</label>
<select id="Categorie_computer" name="Categorie_computer">
    <option value="">Kies...</option>
    <option value="Sport">Sport games</option>
    <option value="Adventure">Adventure games</option>
    <option value="War">War games</option>
    <option value="Stategisch_computer">Strategische games</option>
</select>

​

票数 2
EN

Stack Overflow用户

发布于 2019-05-22 20:18:37

您可以将div包装为每个select及其标签的容器元素。因此,您可以轻松地隐藏该容器的所有内容。您还必须观察select的change-event。当该事件被触发时,您可以比较选定内容的值或文本。值是隐藏的、可以提交给服务器等的实际值,文本是在浏览器中呈现的内容。

​

代码语言:javascript
复制
$('#Soort').on('change', function(){
  if ($('#Soort').val() == "bordspel") {
    $('#container-4').hide();
  } else {
    $('#container-4').show();
  }
});
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div id="container-2">
  <label>Wat speelt u meestal?</label>
  <select id="Soort" name="Soort">
    <option value="">Kies...</option>
    <option value="bordspel">Bordspellen</option>
    <option value="computer">Computergame's</option>
  </select>
</div>

<div id="container-4">
  <label>Welke Categorie Computergame speelt u meestal?</label>
  <select id="Categorie_computer" name="Categorie_computer">
    <option value="">Kies...</option>
    <option value="Sport">Sport games</option>
    <option value="Adventure">Adventure games</option>
    <option value="War">War games</option>
    <option value="Stategisch_computer">Strategische games</option>
  </select>
</div>

​

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56256449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档