jquery - 除了值/文本之外,有没有办法在使用 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);
}
});
}
解决方案
由于您要传递三个字段,即文本、值和日期,并且您正在使用 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;
推荐阅读
- android - 无法更改 Basic Activity 模板第一个片段中的 TextView
- python - 使用抓取的数据填充 csv 文件
- html - 轮播不显示
- plot - 在 [pinescript] 中绘制 adx 和价格振荡器时绘制优先级
- javascript - 将参数传递给预期会引发错误的方法?
- android - 如何在颤振/飞镖中从 Facebook 页面获取提要?
- python - 上传文件 django admin
- python - 在 Python 中按多个条件对数据进行分组
- r - 将合并的列的列名更改为指定数据集中的名称
- python - 当我运行应用程序时,我收到此错误 ModuleNotFoundError: No module named 'preferences' in django