如何根据其他两个下拉选择加载和删除下拉选项?

How to load and remove dropdown options according to two other dropdown selection?

我的情况是:

  1. 用户 selects 目的地(第一个下拉列表)
  2. 用户 select 是 attraction/activity(第二个下拉列表)
  3. 第三个下拉列表选项应该根据第一个和第二个下拉列表动态加载 selection.

我的加分是

<div class="multi-field">
    <select class="text-one" name="destination[]">
        <option selected value="base">Please Select</option>
        <option value="colombo">Colombo</option>
        <option value="kandy">Kandy</option>
        <option value="anuradhapura">Anuradhapura</option>
    </select>
    <br />

    <select class="text-two" name="attraction_or_activity[]">
        <option value="attraction">Attraction</option>
        <option value="activity">Activity</option>
    </select>

    <select id="populated_attr_or_activity" name="attraction_or_activity_selected[]">
        <!-- here I have to populate the ARRAYS as option -->
    </select>
</div>

而我的jquery是

<script>
$(document).ready(function() {
    $(".text-two").change(function() {

    /* saving selected values in variables */
        var selected_destination = $('.text-one :selected').val();
        var selected_attraction_or_activity = $('.text-two :selected').val();

        colombo_attractions = new Array("Ganga Ramaya","National Art Gallery","Galle Face Green","Arcade Indepentent Square");
        colombo_activities = new Array("City Walk 2016","Traditional Dance Competition 2016","Local Spicy food");

        if ( selected_destination == 'colombo' && selected_attraction_or_activity == 'attraction') {
            colombo_attractions.forEach(function(t) { 
                $('#populated_attr_or_activity').append('<option>'+t+'</option>');
            });
        }

        if ( selected_destination == 'colombo' && selected_attraction_or_activity == 'activity') {
            colombo_activities.forEach(function(t) { 
                $('#populated_attr_or_activity').append('<option>'+t+'</option>');
            });
        }

    });
});
</script>

我差不多明白了。 当用户是 select 时,第二个 (attraction/activity) 下拉列表将根据 selection 加载第三个。 它加载 'activities' 可以在 'colombo'

中找到

问题: 当用户切换回其他选择的景点或 activity 下拉列表时,第三个下拉列表将添加选项。 但我想删除最后加载的选项并根据新的 attraction/activity 下拉列表 selection.

添加回选项

这是演示:http://codepen.io/foolishcoder7721/pen/oboKML

  1. Select目的地
  2. Select一个景点/activity
  3. 检查第三个下拉菜单
  4. Select又是一个景点/activity
  5. 再次检查第 3 个下拉列表
  6. 您将看到新添加的选项。

我怎样才能解决这个问题并按照我上面的解释得到它?

顶部的第三个空列表:

$(document).ready(function() {
$(".text-two").change(function() {
    $('#populated_attr_or_activity').html('');
/* saving selected values in variables */
    var selected_destination = $('.text-one :selected').val();
    var selected_attraction_or_activity = $('.text-two :selected').val();

    colombo_attractions = new Array("Ganga Ramaya","National Art Gallery","Galle Face Green","Arcade Indepentent Square");
    colombo_activities = new Array("City Walk 2016","Traditional Dance Competition 2016","Local Spicy food");

    if ( selected_destination == 'colombo' && selected_attraction_or_activity == 'attraction') {
        colombo_attractions.forEach(function(t) { 
            $('#populated_attr_or_activity').append('<option>'+t+'</option>');
        });
    }

    if ( selected_destination == 'colombo' && selected_attraction_or_activity == 'activity') {
        colombo_activities.forEach(function(t) { 
            $('#populated_attr_or_activity').append('<option>'+t+'</option>');
        });
    }

});
});