обработка выпадающего списка - PullRequest
0 голосов
/ 29 февраля 2012

Я новенький на asp.net mvc, и еще новее использую jquery, так что это моя проблема: у меня есть несколько выпадающих списков, которые динамически заполняются данными из другого выпадающего или текстового поля, и данными техраскрывающийся список используется для другого раскрывающегося списка, например цепочки, моя проблема в том, что в раскрывающемся меню иногда есть только один ответ / параметр, и если я пытаюсь выбрать этот параметр, jquery не активирует $ ("# any")Событие .change (), потому что у меня есть только одна опция, как мне ее обработать?

http://imageshack.us/photo/my-images/20/sinttulolp.jpg/

например, для этого мне нужны данные красного круга для заполнения синего круга, но у красного круга есть только одна опция, и если я нажму, ничего не произойдет

код:

$ (документ) .ready (function () {

            $("#tbClave1").autocomplete({
                minLength: 1,
                source: getClave1,
                select: function(event, ui) {
                    updateClave2(ui.item.value);

                }
            });

            $("#tbClave1").change(function() {
                if ($("#tbClave1").val().length == 4) {
                    updateClave2($("#tbClave1").val());
                }
            });

            $("#ddClave2").change(function() {
                updateClave3($("#tbClave1").val(), $("#ddClave2").val());
                updateNombre($("#tbClave1").val(), $("#ddClave2").val());
                if ($("#ddTipoArticulo").val() == "A" ||
                    $("#ddTipoArticulo").val() == "B" ||
                    $("#ddTipoArticulo").val() == "L") {
                    updatePrecioA($("#tbClave1").val(), $("#ddClave2").val());
                } else { 
                    if ($("#ddTipoArticulo").val() == "N" ||
                         $("#ddTipoArticulo").val() == "H"){
                         updatePrecioB($("#tbClave1").val());
                    }
                }
            });

            $("#ddClave3").change(function() {
                updateClave4($("#tbClave1").val(), $("#ddClave2").val(), $("#ddClave3").val());
            });
        });

Редактировать: пример того, как я заполняю один из выпадающих списков

Jquery

функция updateClave2 (cod) {

            var dd = document.getElementById("ddClave2");
            dd.options.length = 0;
            dd.options[0] = new Option("Espere...");
            dd.selectedIndex = 0;
            dd.disabled = true;
            codigo = cod;
            tipoArt = $("#ddTipoArticulo").val();
            // Control de errores
            $("#ddClave2").ajaxError(function(event, request, settings) {
                dd.options[0] = new Option("No se Cargaron Datos");
            });
            // Obtenemos los datos...
            $.ajax({
                url: '/Home/GetClave2',
                dataType: 'json',
                data: { words: codigo, tipoArticulo: tipoArt },
                success: function(data, textStatus, jqXHR) {
                    $.each(data, function(i, item) {
                        dd.options[i] = new Option(item["clave2"], item["clave2"]);
                    });
                    dd.disabled = false;
                }
            });
        }

Контроллер

публичный ActionResult GetClave2 (строкаслова, строка tipoArticulo) {Список mySource = miConexion.Clave2 (имя пользователя, пароль, слова, tipoArticulo);вернуть Json (mySource);}

1 Ответ

0 голосов
/ 29 февраля 2012

Как писал Алекс Мендез, добавление элемента по умолчанию в каждый выпадающий список с текстом типа «Выбрать один» кажется вашим самым простым ответом. Вам также потребуется выполнить некоторую обработку в случае, если пользователь повторно выберет вариант «Выбрать один» по умолчанию. Чтобы добавить значения по умолчанию в выпадающие списки .Net, попробуйте этот код:

YourListID.Items.Insert(0, new ListItem("Select One", "Select One");

или

<asp:DropDownList ID="YourListID" runat="server" AppendDataBoundItems="true">
    <asp:ListItem Text="Select One" Value="Select One" Selected="true" />
</asp:DropDownList>

РЕДАКТИРОВАТЬ (Пропущенный MVC) и в MVC, когда вы связываете свои начальные ViewData, просто убедитесь, что ваш «Select One» находится в лжи:

Dictionary<int, string> dictionaryList = DropDownListItems();
ViewData["ModelData"] = new SelectList(dictionaryList, "Key", "Value")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...