Установите значение для select2, не работающего в asp. net mvc - PullRequest
0 голосов
/ 21 июня 2020

Я хочу установить выбранное значение для моих двух каскадных раскрывающихся списков select2, но это не работает.

Вот мой код jquery, который заполняет мои раскрывающиеся списки код

  alert($("#hdArmario").val()+$("#hdCajon").val()+$("#hdUbicacionID").val());

сообщает мне, что я могу получить правильные значения

$(document).ready(function () {
    alert($("#hdArmario").val()+$("#hdCajon").val()+$("#hdUbicacionID").val());
    $("#btnSalvar").click(function () {
        $("#ubicacion_id").val($("#drCajon").val());
        if ($("#drOperation option:selected").text() === "-") {
            if (parseInt($("#cantidadActuel").text()) - parseInt($("#cambiar_cantidad").val()) < 0) {
                alert("La cantidad no puede ser menor que cero");
            }
            else {
                AddUpdate();
            }
        }
        else {
            //alert(parseInt($("#cantidadActuel").text()) + parseInt($("#cambiar_cantidad").val()));
            AddUpdate();
        }

        function AddUpdate() {
            var modifyBy = $("#drOperation option:selected").text() + $("#cambiar_cantidad").val();
            $.ajax({
                type: 'POST',
                url: "/gestiondecomponentes/SalvarUbicacion",
                data: { idComponente: window.location.href.match(/[^\/]*$/), idUbicacion: $("#drCajon").val(), cantidadModifier: modifyBy },
                dataType: 'json',
                success: function (data) {
                    // your data could be a View or Json or what ever you returned in your action method
                    // parse your data here
                    //successs....
                    $dialog.dialog('close');
                    //oTable.ajax.reload();
                    $("#flash-messages").flashMessage();
                }
            });
        }
    });
    $.ajax({
        url: '/inventario/loadArmario',
        type: 'post',
        dataType: 'json',
        success: function (response) {
            var len = response.length;

            $("#drArmario").empty();
            $("#drArmario").append('<option value="">-- Seleccione --</option>');
            for (var i = 0; i < len; i++) {
                var id = response[i]['armario'];
                var armario = response[i]['armario'];

                $("#drArmario").append("<option value='" + id + "'>" + armario + "</option>");
            }
            $('#drArmario').val($("#hdArmario").val());
        }
    });

Тогда я ожидал бы, что эта строка кода

            $('#drArmario').val($("#hdArmario").val());

выберет мое правильное значение, но оно не работает

    $("#drArmario").change(function () {
        var deptid = $(this).val();

        $.ajax({
            url: '/inventario/loadCajon',
            type: 'post',
            data: { Prefix: deptid },
            dataType: 'json',
            success: function (response) {
                var len = response.length;
                $("#drCajon").empty();
                $("#drCajon").append('<option value="">-- Seleccione --</option>');
                for (var i = 0; i < len; i++) {
                    var id = response[i]['ubicacion_id'];
                    var cajon = response[i]['cajon'];
                    $("#drCajon").append("<option value='" + id + "'>" + cajon + "</option>");
                }

            }
        });
    });

    var select2Options = { width: 'resolve' };
    // Loading raw JSON files of a secret gist - https://gist.github.com/ajaxray/32c5a57fafc3f6bc4c430153d66a55f5
    var apiUrl = 'https://gist.githubusercontent.com/ajaxray/32c5a57fafc3f6bc4c430153d66a55f5/raw/260a653e6347fb6d2360e8ec376a2dc4888c1afa/:parentId:.json';

    $('select.special').select2(select2Options);
    var cascadLoading = new Select2Cascade($('#drArmario'), $('#drCajon'), apiUrl, select2Options);
    cascadLoading.then(function (parent, child, items) {
        for (var i = 0; i < items.length; i++) {
            alert(items[i]);
        }
        // Dump response data
        console.log(items);
    });
});

Итак, мой вопрос в том, как я могу выбрать значения в раскрывающемся списке. Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 21 июня 2020

Это сработало для меня

$("#drArmario").val($("#hdArmario").val()).change();
...