根据另一个<选择>的值将选项添加到<选择>


Add options to <select> based on value of another <select>

我正在处理一个表单,该表单需要根据用户首先完成的另一个值填充下拉菜单。

两个选择是"主题"和"主题"。选择主题后,"主题"下拉菜单应包含该主题中的所有主题。例如,对于"数学"主题,主题"应显示代数,形状等。

我怎样才能做到这一点?这两个选择的值都是在 PHP 中完成的。对于第一个选择,使用 for 循环填充选择是一个简单的任务,但似乎必须将 JavaScript 用于第二个选择。我该怎么做呢?

提前感谢,伊尔米翁特

假设您的第一个select有 2 个option

<option value="math">math</option> 
<option value="english">english</option>

因此,您可以加载第二selectoption如下所示:

<option value="math-a">math-a</option>
<option value="math-b">math-b</option>
<option value="english-a">english-a</option>
<option value="english-b">english-a</option>

其中 a & b 代表不同的主题。你最初可以使用jQUeryCSS隐藏第二个selectoption

然后,只需使用 jQuery 根据第一个select显示特定的option,如下所示:

$('#sub').change(function(){
    $('#topic option').css('display', 'none');
    var value = $(this).val();
    if(value){
        $('#topic option').each(function(){
            var topic = $(this).val();
            topic = topic.split('-');
            topic = topic[0];
            if(value == topic){
                $(this).css('display', 'block');
            }
        });
    }
});

工作小提琴

希望这会起作用!