首页 > 解决方案 > 除了值/文本之外,有没有办法在使用 AJAX 填充的 DropDownList 中存储附加属性?

问题描述

我正在使用 Ajax 填充 DropDownList,当用户在此 DropDownList 中选择一个项目时,我需要在另一个字段中显示一个日期,并且该日期是 DropdownList 实体本身中存在的一个字段,添加所有 3 个字段将是完美的DropDownList 中的那个实体(值/文本/日期)。我已经通过 Ajax 获得了它们。那么,有什么办法可以做到吗?如果不是,我想我会尝试添加一个额外的 DropDownList(隐藏)或类​​似的东西,但这个想法不是很好,因为我需要更新每个用户交互的额外控件。

编辑:添加 Ajax 调用和 DropDown 相关代码,我添加了 2 个字段值/文本,但我需要第三个:

    function GetLote(_idProducto) {
    $("#FechaVencimiento").val('');
    var procemessage = "<option value='0'> Cargando...</option>";
    $("#ddllote").html(procemessage).show();

    var data = JSON.stringify({
        idProducto: _idProducto
    });

    return $.ajax({
        url: "/Deposito/GetLotesPorProducto",
        data: data,
        cache: false,
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        type: 'POST',
        success: function (data) {
            var markup = "<option value='0'>Seleccionar..</option>";
            for (var x = 0; x < data.length; x++) {
                markup += "<option value=" + data[x].Value + ">" + data[x].Text + "</option>";
            }
            $("#ddllote").html(markup).show();

        },
        error: function (reponse) {
            alert("error : " + reponse);
        }
    });
}

标签: jqueryajaxasp.net-mvcmodel-view-controller

解决方案


由于您要传递三个字段,即文本、值和日期,并且您正在使用 AJAX 和 jquery。您可以使用下拉菜单的其他属性,例如 for text user Text、 for value useValue和 for date you may use innerText。所以这将是这样的:

for (var x = 0; x < data.length; x++) {
     markup += "<option value=" + data[x].Value + ">" + data[x].Text + "</option>";
         }
    $("#ddllote").html(markup).show()

 for (var x = 0; x < data.length; x++) {
       $('#ddllote')[x].innerText=data.Date
             } //Here i have looped again to caputure the Date.

现在,无论您想在哪里使用所选项目的日期,您都可以通过使用innerText所选项目来做到这一点。

var DateinAnotherField= $('#ddlloteoption:selected').innerText;

推荐阅读