Jquery动态隐藏和显示下拉菜单

时间:2013-10-16 04:25:01

标签: javascript php jquery html

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

我有以下代码。

<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>         

我尝试使用这些函数来显示。来自下拉菜单中的div的div,但没有运气,我不确定我做错了什么。我还删除了div id块中的一些代码,以便于阅读。

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

3 个答案:

答案 0 :(得分:9)

demo

<强> 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();
    })
});

答案 1 :(得分: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(){

答案 2 :(得分: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>  

将此代码放在头部:

<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>