【问题标题】:Show/hide div based on option value根据选项值显示/隐藏 div
【发布时间】:2026-02-09 17:40:01
【问题描述】:

我刚刚阅读了我能找到的所有其他主题,但我遇到了同样的问题,但这对我没有帮助,这就是我在这里发帖的原因。

我正在尝试根据第三个问题的选项值显示其他表单问题。 根据具有相同功能的其他主题,这应该可以正常工作,但是对我来说,当我更改值并且找不到任何错误时,什么都没有发生。我还是 JS 的新手。

提前致谢。干杯!

这是我的全部代码:

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test</title>
<link rel="stylesheet" href="style.css" type="text/css"/>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js" ></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.js"></script>‌​

<script>

$("#aktivnost").change(function() {
    if ($(this).val() == "huddle") {
        $(".huddle_q").show();
    }

    if ($(this).val() == "1on1") {
    $(".jnj_q").show();
    }
    else {
        $(".huddle_q", ".jnj_q").hide();
    }
});

</script>

</head>

<body>

<form>

<span>Team Leader:</span> 
<select name="team_leader">
  <option value="dinko_roso"> Dinko Roso </option>
  <option value="lucija_starcevic"> Lucija Starčević </option>
  <option value="natalija_fluka"> Natalija Fluka </option>
  <option value="tamara_zdjelar"> Tamara Zdjelar </option>
  <option value="bojan_brnjac"> Bojan Brnjac </option>
  <option value="andro_vuljanic"> Andro Vuljanić </option>
</select>

<br />

<span>Ocjenjivač:</span>
 <select name="ocjenjivac">
  <option value="dinko_roso"> Branimir Spajić </option>
  <option value="lucija_starcevic"> Ozren Kovačević </option>
  <option value="natalija_fluka"> Dunja Vidak </option>
  <option value="tamara_zdjelar"> Anamaria Katić </option>
  <option value="bojan_brnjac"> Marko Nimac </option>
</select>

<br />

<span>Aktivnost:</span> 
<select id="aktivnost">
  <option value="team_meeting"> Team Meeting </option>
  <option value="1on1"> 1on1 </option>
  <option value="huddle"> Huddle </option>
</select>

<br />

<div class="huddle_q">

<span>Dužina stiskavca:</span>
<input type="radio" name="h_q1" value="0">0</input>
<input type="radio" name="h_q1" value="3">3</input>

<br />

<span>Fokusi:</span>
<input type="radio" name="h_q2" value="0">0</input>
<input type="radio" name="h_q2" value="1">1</input>
<input type="radio" name="h_q2" value="2">2</input>
<input type="radio" name="h_q2" value="3">3</input>

<br />

<span>Parkiranje:</span>
<input type="radio" name="h_q3" value="0">0</input>
<input type="radio" name="h_q3" value="3">3</input>

<br />

<span>Poticanje:</span>
<input type="radio" name="h_q4" value="0">0</input>
<input type="radio" name="h_q4" value="1">1</input>
<input type="radio" name="h_q4" value="2">2</input>
<input type="radio" name="h_q4" value="3">3</input>

<br />

<span>Predstavljanje:</span>
<input type="radio" name="h_q5" value="0">0</input>
<input type="radio" name="h_q5" value="3">3</input>

<br />

<span>Održava atmosferu:</span>
<input type="radio" name="h_q6" value="0">0</input>
<input type="radio" name="h_q6" value="1">1</input>
<input type="radio" name="h_q6" value="2">2</input>
<input type="radio" name="h_q6" value="3">3</input>

</div>

<div class="jnj_q">

<span>Dužina 1on1:</span>
<input type="radio" name="1on1_q1" value="0">0</input>
<input type="radio" name="1on1_q1" value="3">3</input>

<br />

<span>TL prepoznaje i hvali:</span>
<input type="radio" name="1on1_q2" value="0">0</input>
<input type="radio" name="1on1_q2" value="1">1</input>
<input type="radio" name="1on1_q2" value="2">2</input>
<input type="radio" name="1on1_q2" value="3">3</input>

<br />

<span>2QM:</span>
<input type="radio" name="1on1_q4" value="0">0</input>
<input type="radio" name="1on1_q4" value="1">1</input>
<input type="radio" name="1on1_q4" value="2">2</input>
<input type="radio" name="1on1_q4" value="3">3</input>

<br />

<span>Razvoj komp:</span>
<input type="radio" name="1on1_q6" value="0">0</input>
<input type="radio" name="1on1_q6" value="1">1</input>
<input type="radio" name="1on1_q6" value="2">2</input>
<input type="radio" name="1on1_q6" value="3">3</input>

</div>

</form>

</body>
</html>

【问题讨论】:

    标签: javascript jquery forms show-hide


    【解决方案1】:

    您的代码在大多数情况下运行良好。您犯的主要错误是您试图在尚不存在的元素上执行代码。您需要 a) 在文档末尾运行代码,或者更常见的是 b) 将代码放在 document.ready 处理程序中。

    jsFiddle example

    $( document ).ready(function() {
       //your code here
    });
    

    请注意,在我添加 $('.huddle_q, .jnj_q').hide(); 的示例小提琴中,当您更改下拉菜单时首先隐藏元素。

    【讨论】:

    • 非常感谢,这对我有帮助,我现在更好地理解了它是如何工作的 :) 另外,当我尝试你的答案时,它一开始没有用,但后来我在链接中添加了 http://的 jquery 库,它的工作。
    • 应该不需要更改 jsFiddle,通过网站包含 jQuery,不需要额外的链接。
    • jsFiddle 很好,我没有改变任何东西,我的文件是问题:)