4

我无法让我的下拉菜单动态显示标记为 的 html 代码块style="display:none"

我有以下代码。

<script type="text/javascript">
  $(\'select[name="questiontype"]\').change(function(){

  if ($(this).val() == "multiple")
      alert("call the do something function on option multiple"); 
  else
      alert("call the do something function on option programming");
  });​
</script>

<form action="addQuestion.php" method="post">                       
  <select name="questiontype">                  
    <option name="questiontype" value="multiple" click="return showMultiple();">Multiple Choice< /option>    
    <option selected name="questiontype" value="programming" click="return showProgramming();">Programming< /option>                                
</select><br>

<input type="hidden" name="course" value="'.$course.'" />

<div id=\'multiple\' style="display:none">
   Multiple
</div>
<div id=\'programming\' style="display:none">
   Programming
</div>
</form>         

我尝试使用这些功能从下拉菜单中按 id 显示()div,但没有运气,我不确定我做错了什么。我还删除了 div id 块中的一些代码,以使其更易于阅读。

<script>
        function showMultiple(){
            $('#multiple').show();
            $('#programming').hide();
            return false;
        }
        function showProgramming(){
            $('#multiple').hide();
            $('#programming').show();
            return false;
        }
</script>
4

3 回答 3

9

演示

HTML

<select id="selectMe">
    <option value="multiple">multiple</option>
    <option value="programming">Programming</option>
</select>
<br><br><br>

 <div id="multiple" class="group" >
   Multiple
</div>

 <div id="programming" class="group" >
   Programming
</div>

JS

$(document).ready(function () {
    $('.group').hide();
    $('#multiple').show();
    $('#selectMe').change(function () {
        $('.group').hide();
        $('#'+$(this).val()).show();
    })
});
于 2013-10-16T04:42:05.137 回答
1

在你select option使用click而不是onclick event

<select name="questiontype">                  
    <option name="questiontype" value="multiple" onclick="return showMultiple();">Multiple Choice</option>    
    <option selected name="questiontype" value="programming" onclick="return showProgramming();">Programming< /option>                                
</select>

并且不需要对单引号使用转义,

<div id='multiple' style="display:none">
   Multiple
</div>
<div id='programming' style="display:none">
   Programming
</div>

并在script标签中

$('select[name="questiontype"]').change(function(){
于 2013-10-16T04:35:50.573 回答
0

尝试这个:

<form action="addQuestion.php" method="post">                       
            <select name="questiontype" id="questiontype">                  
                <option value="multiple">Multiple Choice</option>    
                <option selected value="programming">Programming</option>                                
            </select>

            <br>



            <div id='multiple' class="group" style="display:none">
                Multiple
            </div>
            <div id='programming' style="display:none"  class="group">
                Programming
            </div>
        </form>  

将此代码放在 head 部分:

<script src="jquery-1.9.1.min.js" type="text/javascript"></script>

        <script type="text/javascript">


            $(document).ready(function () {
                $('.group').hide();
                $('#programming').show();


                $('#questiontype').change(function () {
                    $('.group').hide(1000);
                    $('#'+$(this).val()).show(1000);
                })
            });

        </script>
于 2013-10-16T05:00:18.520 回答