dongshen9058 2014-10-02 11:18
浏览 27
已采纳

动态第二下拉列表基于第一个下拉列表

Ok, so I researched before asking, but they seem to use complicated stuff like cloning(?) what I need is really simple and I can't do it or don't know if its possible to do in php.

I need the 2nd dropdown-list to appear depending on what is currently selected (before submit) in the first dropdown.

Here is my 1st Dropdown:

<select name="category">
<option value="Vitamin">Vitamin</option>
<option value="Supplement">Supplement</option>
<option value="Therapy Machine">Therapy Machine</option>
</select>

Then for example I selected "Vitamin", the second dropdown options should be

<select name="subcategory">
<option value="Vitamin A">VitaminA</option>
<option value="Vitamin B">VitaminB</option>
<option value="Vitamin C">VitaminC</option>
</select>

I tried doing it in php using ifs. I can't almost understand js, but I think there's a simpler way?... help.

EDITED: Here's the code.

<select name="category" id="category">
   <option value="Vitamin" selected>Vitamin</option>
   <option value="Supplement">Supplement</option>
   <option value="Therapy Machine">Therapy Machine</option>
</select>
<select name="subcategory" id="subcategory">
 <optgroup label="Vitamin">
    <option value="Vitamin A">VitaminA</option>
    <option value="Vitamin B">VitaminB</option>
    <option value="Vitamin C">VitaminC</option>
  </optgroup>
  <optgroup id="B" label="Supplement" disabled>
    <option value="Vitamin A">VitaminA</option>
    <option value="Vitamin B">VitaminB</option>
    <option value="Vitamin C">VitaminC</option>
  </optgroup>
  <optgroup id="C" label="Therapy Machine" disabled>
    <option value="Vitamin A">VitaminA</option>
    <option value="Vitamin B">VitaminB</option>
    <option value="Vitamin C">VitaminC</option>
  </optgroup>
 </select>

And the JS
 <script>
 $(document).ready(function(){
 $("#category").on("change",function(){
    var selectedVal=$( "#category option:selected" ).val();
    $("#subcategory > optgroup").attr("disabled","disabled");
    $('#subcategory > optgroup[label="'+selectedVal+'"]').removeAttr("disabled");
 });  
 });
</script>
  • 写回答

2条回答 默认 最新

  • douji9816 2014-10-02 11:42
    关注

    you can try following code and on Fiddle

    <select name="category" id="cateogery">
        <option value="Vitamin" selected>Vitamin</option>
        <option value="Supplement">Supplement</option>
        <option value="Therapy Machine">Therapy Machine</option>
    </select>
    <select name="subcategory" id="subcategory">
         <optgroup label="Vitamin">
            <option value="Vitamin A">VitaminA</option>
            <option value="Vitamin B">VitaminB</option>
            <option value="Vitamin C">VitaminC</option>
        </optgroup>
        <optgroup id="B" label="Supplement" disabled>
            <option value="Vitamin A">VitaminA</option>
            <option value="Vitamin B">VitaminB</option>
            <option value="Vitamin C">VitaminC</option>
        </optgroup>
        <optgroup id="C" label="Therapy Machine" disabled>
            <option value="Vitamin A">VitaminA</option>
            <option value="Vitamin B">VitaminB</option>
            <option value="Vitamin C">VitaminC</option>
        </optgroup>
    </select>
    

    JQUERY

    $(document).ready(function(){
        $("#category").on("change",function(){
            var selectedVal=$( "#category option:selected" ).val();
            $("#subcategory > optgroup").attr("disabled","disabled");
            //$("#subcategory > optgroup").hide(); // you can also hide option insted make them just disabled
            $('#subcategory > optgroup[label="'+selectedVal+'"]').removeAttr("disabled");
           // $('#subcategory > optgroup[label="'+selectedVal+'"]').show() 
        });  
    });
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥30 关于用python写支付宝扫码付异步通知收不到的问题
  • ¥50 vue组件中无法正确接收并处理axios请求
  • ¥15 隐藏系统界面pdf的打印、下载按钮
  • ¥15 MATLAB联合adams仿真卡死如何解决(代码模型无问题)
  • ¥15 基于pso参数优化的LightGBM分类模型
  • ¥15 安装Paddleocr时报错无法解决
  • ¥15 python中transformers可以正常下载,但是没有办法使用pipeline
  • ¥50 分布式追踪trace异常问题
  • ¥15 人在外地出差,速帮一点点
  • ¥15 如何使用canvas在图片上进行如下的标注,以下代码不起作用,如何修改