Javascript 确保所选值显示在第一个选择输入字段中

Javascript 确保所选值显示在第一个选择输入字段中,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有两个选择输入字段,如下所示。选择第一个选择输入字段值时,使用jquery填充第二个选择输入字段。默认情况下,新填充的第一个选项设置为选中 当我在第一个输入字段中从一个选择选项切换到另一个选择选项时。选定值确实会从一个选项值切换到另一个选项值,但下拉列表显示新选定的值并返回到第一个选项,而selected=selected仍设置为new option selected。我不知道为什么下拉列表中显示的值会返回到第一个 下面是我的代码 JS 上面的代码工作得很好 问题是第一个选择输入字段显示第一个

我有两个选择输入字段,如下所示。选择第一个选择输入字段值时,使用jquery填充第二个选择输入字段。默认情况下,新填充的第一个选项设置为选中

当我在第一个输入字段中从一个选择选项切换到另一个选择选项时。选定值确实会从一个选项值切换到另一个选项值,但下拉列表显示新选定的值并返回到第一个选项,而selected=selected仍设置为new option selected。我不知道为什么下拉列表中显示的值会返回到第一个

下面是我的代码 JS 上面的代码工作得很好

问题是第一个选择输入字段显示第一个选项,而选择的值是从下拉列表中选择的值。我想在下拉列表中显示用户选择的值

如果我删除此行:

$'filter_type option[selected=selected]'。删除'selected'

然后,在选择框中显示右选项的问题被修复,但当我玩下拉菜单时,我有多个选择值

截屏 最初

论校园选择

选择年份,然后逐个选择部门


实际上,下面的语句并没有删除选定的属性

$('#filter_type option[selected="selected"]').removeAttr('selected');
请改用以下语句:

$('#filter_type').val(undefined);
尝试执行如下选择状态更改:

if(id == 'abc')
{
    $('#search').append($('<option>', {
        value: data.id,
        text : data.abc_name
    }));

    $("#filter_type").val('abc');
    $("#search option:first").attr('selected','selected');
    $('#search').removeAttr('disabled');
    $('#submit').removeAttr('disabled');
}

其他人也是如此

我该把这条线放在哪里?我试着在这行后面加上:$'search'。empty;但这似乎不起作用。我看不到任何变化。您在哪里有多个选定值?在fiter_中键入或搜索?也许我不是很了解你的问题,当我选择2次或更多次不同的选择值时,它发生在过滤器类型中。让我演示一下如何操作。我添加了一些屏幕截图来显示正在发生的情况。为什么在每个if块中都写这行:$filter_type option:nth childx.attr'selected','selected'?
$('#filter_type').val(undefined);
if(id == 'abc')
{
    $('#search').append($('<option>', {
        value: data.id,
        text : data.abc_name
    }));

    $("#filter_type").val('abc');
    $("#search option:first").attr('selected','selected');
    $('#search').removeAttr('disabled');
    $('#submit').removeAttr('disabled');
}