条件下拉列表Javascript和HTML

时间:2016-12-24 17:16:01

标签: javascript jquery html

我正在尝试使用html和javascript创建一个包含条件下拉框的网页。假设这是星期一的某一天,我需要一个不同的下拉框,周四时有不同的选项;但有些日子可能有相同的选择。最初我有两个下拉框,当一个人点击它的那一天,然后下拉框会出现,但我想知道是否有办法使用javascript函数自动执行此操作,并创建一个只显示一个功能的功能某些下拉列表。

<html>
 <head></head>
 <body>
    <div id="myQuestions">
        <select id="QuestionOptions">
            <option value disalbe selected>What Day is it?</option>
            <option value="A">Monday</option>
            <option value="A">Tuesday</option>
            <option value="B">Wednesday</option>
            <option value="B">Thursday</option>
            <option value="B">Friday</option>
            <option value="A">Saturday</option>
            <optoin value="A">Sunday</optoin>
        </select>
    </div>
    <div id="myAnswers">
        <div id="A" style="display: none;">
            <div id="QuestionC">
                <p>Exapmle of question.</p>
            </div>
            <div id="QuestionD">
                <select id="QuestionOptionsD">
                    <option value disalbe selected>Choose Your Answer</option>
                    <option value="G">Answer G</option>
                    <option value="H">Answer H</option>
                </select>
            </div>
        </div>
        <div id="B" style="display: none;">
            <div id="QuestionE">
                <p>Exmaple of another question.</p>
            </div>
            <div id="QuestionF">
                <select id="QuestionOptionsF">
                    <option value disalbe selected>Choose Your Answer</option>
                    <option value="I">Answer I</option>
                    <option value="J">Answer J</option>
                </select>
            </div>
        </div>
    </div>
</body>
</html>

4 个答案:

答案 0 :(得分:2)

如果我理解你的要求。这是您正在寻找的jquery

$("#QuestionOptions").change(function(){
  $("#A,#B").hide();
  if($(this).val() == "A"){
    $("#A").show();
  }else{
     $("#B").show(); 
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
 <head></head>
 <body>
    <div id="myQuestions">
        <select id="QuestionOptions">
            <option value disalbe selected>What Day is it?</option>
            <option value="A">Monday</option>
            <option value="A">Tuesday</option>
            <option value="B">Wednesday</option>
            <option value="B">Thursday</option>
            <option value="B">Friday</option>
            <option value="A">Saturday</option>
            <optoin value="A">Sunday</optoin>
        </select>
    </div>
    <div id="myAnswers">
        <div id="A" style="display: none;">
            <div id="QuestionC">
                <p>Exapmle of question.</p>
            </div>
            <div id="QuestionD">
                <select id="QuestionOptionsD">
                    <option value disalbe selected>Choose Your Answer</option>
                    <option value="G">Answer G</option>
                    <option value="H">Answer H</option>
                </select>
            </div>
        </div>
        <div id="B" style="display: none;">
            <div id="QuestionE">
                <p>Exmaple of another question.</p>
            </div>
            <div id="QuestionF">
                <select id="QuestionOptionsF">
                    <option value disalbe selected>Choose Your Answer</option>
                    <option value="I">Answer I</option>
                    <option value="J">Answer J</option>
                </select>
            </div>
        </div>
    </div>
</body>
</html>

答案 1 :(得分:0)

查看我的 JSFidle 。大多数关于javascript的代码,删除一些不需要的html元素。

答案 2 :(得分:0)

使用动态选项

var dynamic_options = {
  'A': [{
    value: "1",
    text: "Option 1"
  }, {
    value: "2",
    text: "Option 2"
  }],

  'B': [{
    value: "3",
    text: "Option 3"
  }, {
    value: "4",
    text: "Option 4"
  }]
};

$(function() {
  var answers = $('#myAnswers').find('select');
  $('#myQuestions').on('change', 'select', function(e) {
    var options = dynamic_options[this.value] || [];
    answers.find('option:gt(0)').remove();
    $.each(options, function(i, option) {
      answers.append($('<option>').prop(option));
    });
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="myQuestions">
  <select>
    <option value=''>What Day is it?</option>
    <option value="A">Monday</option>
    <option value="A">Tuesday</option>
    <option value="B">Wednesday</option>
    <option value="B">Thursday</option>
    <option value="B">Friday</option>
    <option value="A">Saturday</option>
    <optoin value="A">Sunday</optoin>
  </select>
</div>
<div id="myAnswers">
  <div>
    <p>Exapmle of question.</p>
  </div>
  <div>
    <select>
      <option value=''>Choose Your Answer</option>
    </select>
  </div>
</div>

顺便说一句,禁用 option中的select,使用属性disabled,而您使用了disalbe

答案 3 :(得分:0)

以下代码在值与选项值匹配时使选项处于选中状态。

<html>
 <head></head>
 <body>
<label>Quantity:</label><br><br>
<select name="qty" id="qty">
    <option value="50">50</option>
    <option value="100">100</option>
    <option value="150">150</option>
    <option value="200">200</option>
    <option value="250">250</option>
    <option value="300">300</option>
    <option value="350">350</option>
    <option value="400">400</option>
    <option value="450">450</option>
    <option value="500">500</option>
</select>

<script>
     $(document).ready(function(){
       $('#qty option[value={{ $qty }}]').attr('selected','selected');
   });
</script>
</body>
</html>