javascript - 隐藏选择并显示其他选择值

标签 javascript html css-selectors hidden

选择年份取决于选择学术排名

如果从学术排名中选择学生,则显示所选年份,否则如果选择其他学生,则隐藏所选年份。

show 方法不起作用。此问题使用在选择学生值时删除隐藏的类(class)

function show() {
  var AcademicRank = $("#academicrank").val();
  if (AcademicRank == 'Student') {
    $("#year").removeClass("hidden");
  } else {
    $("#year").addClass("hidden");
  }
}
.hidden {
  display: none!important
}
<div class="form-group validYear">
  <select class="form-control select2-single hidden" data-error="Please Select  Year " id="year" name="year" required>
    <option value="">Select Your Year *
    </option>
    <option value="First Year 1st">First Year 1st
    </option>
    <option value="Second Year  2nd">Second Year 2nd
    </option>
    <option value="Thard Year 3rd">Thard Year 3rd</option>
    <option value="Fourth Year 4th">Fourth Year 4th</option>

  </select>
  <div class=input-group-icon><i class="fa fa-map-marker"></i>
  </div>
  <div class="help-block with-errors"></div>
</div>

<div class="form-group validAcademicRank">

  <select class="form-control select2-single" data-error="Please Select  Academic Rank " id="academicrank" name="academicrank" required onselect="show()">
    <option value="">Select Your Academic Rank *
    </option>
    <option value="Assistant professor">Assistant professor
    </option>
    <option value="Associate professor">Associate professor
    </option>
    <option value="Professor">Professor </option>
    <option value="Instructor"> Instructor</option>
    <option value="Assistant Teaching">Assistant Teaching
    </option>
    <option value="Student">Student</option>

  </select>
  <div class=input-group-icon><i class="fa fa-map-marker"></i>
  </div>
  <div class="help-block with-errors"></div>
</div>

最佳答案

  • 您在选择器中缺少 $。
  • jQuery 有toggleClass
  • 您应该将处理程序添加到加载时的事件 onselect="show()" 无效
  • 您也没有初始化该事件

$(function() { // on load 
  $("#academicrank").on("change", function() { // on change of the select
    var AcademicRank = $("#academicrank").val();
    $("#year").toggleClass("hidden", AcademicRank !== 'Student'); // toggle the class
  }).change(); // init
});
.hidden {
  display: none!important
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="form-group validAcademicRank">
  <select class="form-control select2-single" data-error="Please Select  Academic Rank " id="academicrank" name="academicrank" required>
    <option value="">Select Your Academic Rank *</option>
    <option value="Assistant professor">Assistant professor</option>
    <option value="Associate professor">Associate professor</option>
    <option value="Professor">Professor </option>
    <option value="Instructor"> Instructor</option>
    <option value="Assistant Teaching">Assistant Teaching</option>
    <option value="Student">Student</option>
  </select>
  <div class=input-group-icon><i class="fa fa-map-marker"></i>
  </div>
  <div class="help-block with-errors"></div>
</div>
<div class="form-group validYear">
  <select class="form-control select2-single hidden" data-error="Please Select  Year " id="year" name="year" required>
    <option value="">Select Your Year *</option>
    <option value="First Year 1st">First Year 1st</option>
    <option value="Second Year  2nd">Second Year 2nd</option>
    <option value="Third Year 3rd">Third Year 3rd</option>
    <option value="Fourth Year 4th">Fourth Year 4th</option>
  </select>
  <div class=input-group-icon><i class="fa fa-map-marker"></i></div>
  <div class="help-block with-errors"></div>
</div>

关于javascript - 隐藏选择并显示其他选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59948327/

相关文章:

javascript - 如何将 JSON 对象转换为 base64 字符串?

jQuery - 如何使用与 child 相同的名字使另一个 li 处于事件状态

html - 设置 div 之后的 p 标签的样式(div 不是 p 的父级)

java - 服务程序 : Force Browser (Google Chrome) to Open 'Save As' Dialog Immediately

javascript - 为什么滚动下面的页面时会触发 mouseenter 事件?

javascript - 对 h1、h2 标题、重置计数器的嵌套文档进行编号

html - id :hover id in css ? 这可能吗?

css - 对 css nth-child 求模

javascript - 使用 jQuery 获取所有表单输入数据的最佳方法是什么?

php - 从 php 获取新代码时修改 HTML 表单