【问题标题】:How to dynamically select option in dropdown menu?如何在下拉菜单中动态选择选项?
【发布时间】:2020-02-10 11:13:57
【问题描述】:

选择一个科目怎么办,时间会根据所选择的科目出现?每个科目都有很多时间选项以及选择一个科目时如何显示,时间显示所选科目的时间

<div class="form-group">
    <label class="control-label"> Subject 1: </label> <font color="red"> * </font>
        <select id="levelSbj1" name="levelSbj1" class="form-control" required="required">
            <option value="0"> - Select Subject--</option>
            <option value="1"> Bahasa Malaysia</option>
            <option value="2"> English</option>
            <option value="3"> Mathematics</option>
            <option value="4"> Science</option>
        </select>
</div>
            
<div class="form-group">
    <label class="control-label"> Time and Day: </label> <font color="red"> * </font>
        <select id="levelLvl1" name="levelLvl1" class="form-control" required="required">
            <option value="0"> - Select Time and Day--</option>
            <option value="1"> 10.00 - 12.00 am (Saturday)</option>
            <option value="1"> 2.00 - 4.00 pm (Saturday)</option>
            <option value="2"> 9.00am - 11.00am (Friday)</option>
            <option value="2"> 3.00 - 5.00 pm (Friday)</option>
            <option value="3"> 10.00 - 12.00 am (monday)</option>
            <option value="3"> 2.00 - 4.00 pm (tuesday)</option>
            <option value="4"> 9.00 - 11.00 am (thursday)</option>
            <option value="4"> 3.00 - 5.00 pm (sunday)</option>
        </select>
</div>
主题 1:* - 选择主题-- 马来文 英语 数学 科学

            

时间和日期:* - 选择时间和日期-- 10.00 - 12.00 上午(星期六) 2.00 - 4.00 pm(星期六) 上午 9 点 - 上午 11 点(星期五) 下午 3:00 - 下午 5:00(星期五) 上午 10:00 - 12:00(星期一) 2.00 - 4.00 pm(星期二) 9.00 - 11.00 上午(星期四) 3.00 - 5.00 pm(星期日)

【问题讨论】:

  • 欢迎来到 Stack Overflow!您可能必须编写代码才能做到这一点。选择主题后,您可以在时间和日期下拉菜单中选择适当的时间。如果您需要帮助,请发布您的代码。

标签: javascript php jquery accordion jquery-ui-accordion


【解决方案1】:

在客户端,您可以像这样尝试使用 jQuery:

$(document).ready(function() {
  // when selection changes on Subject
  $('#levelSbj1').on('change', function(e) {
    var currentSubject = $(this);
    var timeSelect = $('#levelLvl1');
    // select time which corresponds to the subbject's value
    timeSelect.val(currentSubject.val());

    var resultsDiv = $('#result');

    switch (currentSubject.val()) {
      case '1': // Bahasa Malaysia
        resultsDiv.html('<span>Subject: ' + currentSubject.find("option:selected").text() + ', Time: ' + timeSelect.find('option').eq(1).text() + ' - ' + timeSelect.find('option').eq(2).text() + '</span>');
        break;
      case '2': // English
        resultsDiv.html('<span>Subject: ' + currentSubject.find("option:selected").text() + ', Time: ' + timeSelect.find('option').eq(1).text() + ' - ' + timeSelect.find('option').eq(3).text() + '</span>');
        break;
      case '3': // Mathematics
        resultsDiv.html('<span>Subject: ' + currentSubject.find("option:selected").text() + ', Time: ' + timeSelect.find('option').eq(3).text() + ' - ' + timeSelect.find('option').eq(4).text() + '</span>');
        break;
      case '4': // Science
        resultsDiv.html('<span>Subject: ' + currentSubject.find("option:selected").text() + ', Time: ' + timeSelect.find('option').eq(2).text() + ' - ' + timeSelect.find('option').eq(3).text() + '</span>');
        break;
    }
  })
})
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>


<div class="form-group">
  <label class="control-label">Subject 1:</label>
  <font color="red">*</font>
  <select id="levelSbj1" name="levelSbj1" class="form-control" required="required">
    <option value="0">--Select Subject--</option>
    <option value="1">Bahasa Malaysia</option>
    <option value="2">English</option>
    <option value="3">Mathematics</option>
    <option value="4">Science</option>
  </select>
</div>
<div class="form-group">
  <label class="control-label">Time and Day:</label>
  <font color="red">*</font>
  <select id="levelLvl1" name="levelLvl1" class="form-control" required="required">
    <option value="0">--Select Time and Day--</option>
    <option value="1">10.00 - 12.00 am (Saturday)</option>
    <option value="2">2.00 - 4. 00 pm (Saturday)</option>
    <option value="3">9.00 - 11.00 am (Friday)</option>
    <option value="4">3.00 - 5. 00 pm (Friday)</option>
    <option value="5">10.00 - 12.00 am (monday)</option>
    <option value="6">2.00 - 4. 00 pm (tuesday)</option>
    <option value="7">9.00 - 11.00 am (thursday)</option>
    <option value="8">3.00 - 5. 00 pm (sunday)</option>
  </select>
</div>

<div id="result"></div>

更新

您不能在 HTML 选择中显示多个选定选项,除非像这样使用多选:enter link description here

但是,您可以提取多个选项的值并将它们显示在某处。我已经更新了代码 sn-p。看看它是如何完成的。这只是一个虚拟示例,您需要根据自己的要求进行调整。

【讨论】:

  • 如果我只想显示所选主题的所选时间怎么办?例如,如果我选择主题英语,那么英语主题会显示 3 个不同的时间。
  • 我已经更新了我的答案,以包含第二个问题的示例。我相信您的两个问题都已得到解答。如果您有任何与当前主题不同的问题,我鼓励您打开一个新线程。
猜你喜欢
  • 2015-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-08
  • 2017-04-30
  • 2022-06-10
相关资源
最近更新 更多