Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何更改多个选择的选择选项,但在jQuery中保持当前选择的选项处于选中状态_Javascript_Jquery_Jquery Select2 - Fatal编程技术网

Javascript 如何更改多个选择的选择选项,但在jQuery中保持当前选择的选项处于选中状态

Javascript 如何更改多个选择的选择选项,但在jQuery中保持当前选择的选项处于选中状态,javascript,jquery,jquery-select2,Javascript,Jquery,Jquery Select2,如果已经选择了目的地选项,我将尝试保持该选项处于选中状态。如果用户选择了一个新的客户端,则每次选择都需要更改目的地选项。每个客户端通常有几十个目的地,但如果当前选择的目的地已经在列表中,则保留该目的地 我已经尝试过获取$。每个选择,清空它们,然后将$。添加到目的地列表中,但它只改变了三个选择中的第二个 $('#client_id').on('change', function () { // Client is selected, load branch destinations //

如果已经选择了目的地选项,我将尝试保持该选项处于选中状态。如果用户选择了一个新的客户端,则每次选择都需要更改目的地选项。每个客户端通常有几十个目的地,但如果当前选择的目的地已经在列表中,则保留该目的地

我已经尝试过获取$。每个选择,清空它们,然后将$。添加到目的地列表中,但它只改变了三个选择中的第二个

$('#client_id').on('change', function () { // Client is selected, load branch destinations

    // AJAX server-side script with the client id to fetch client branches
    $.post('/directtransit/getbranchlist', {'id': id}, function (data) {

        // Change all of the line items' destination options based on client branches
        $('select[id^="destination"]').each(function(){

            var currentDestination = $(this).val(); // Get items currently selected destination
            $(this).empty().append('<option></option>');
            $.each(branches, function (k, v) { // Populate select options for each of the line items

                var option = '<option value="' + v.id + '">' + v.name + '</option>';
                // If the currently selected location is in the new option list...
                // ... keep it selected
                if (v.id === currentDestination) { 
                    option = '<option value="' + v.id + '" selected>' + v.name + '</option>'; 
                }
                $(this).append(option);
            });
        });
    });
});

难道它不应该改变它们吗?

$每个农场,分支是什么?你在哪里使用数据?第一个$this.empty.append;,它的用途是什么?还有,{id':id}中的id是从哪里来的?我也不明白为什么要将完全相同的选项放在多个select元素中。。。目的是什么?您确定select是要使用的正确元素吗?如果我猜对了,简单的带有几个目的地的复选框就足够了,而不允许用户在不同的选择中选择完全相同的选项值。。。毫无意义。。。你在建什么?分行是银行客户的每个分行所在地。有几个用户需要能够验证,因此,如果输入不正确,则需要更改所有行项目以使其具有正确的目的地。从订单到提货到验证再到交付,该行项目可以发送到客户的任何目的地。选择是唯一的选项,因为有些客户有几个分支,有些客户有几十个分支。皮卡包可能会被送到任何一家客户分支机构。对不起,我添加了一些评论,希望能稍微澄清一下脚本工作流程。