jquery - 无法在选择下拉列表中填充来自 ajax 的选定响应
问题描述
我有一个json响应如下:
{
"respData": [
{
"salesTargetId": "c51a411e-44ed-496c-85c0-52d76bd97c64",
"userId": "5f32aa84-c9e7-4c27-a292-0f06ffe07b82",
"type": "SALES",
"month": "April",
"year": "2021",
"target": 1550,
"actual": 500,
"createdBy": "5f32aa84-c9e7-4c27-a292-0f06ffe07b82",
"createdDate": "2021-05-06 15:51:41",
"brand": "Cipla",
"status": "ACTIVE"
},
{
"salesTargetId": "d2053e0a-c0b4-4adf-bf98-05789cb8f72f",
"userId": "5f32aa84-c9e7-4c27-a292-0f06ffe07b82",
"type": "SALES",
"month": "April",
"year": "2021",
"target": 3000,
"actual": 1000,
"createdBy": "5f32aa84-c9e7-4c27-a292-0f06ffe07b82",
"createdDate": "2021-05-06 16:07:41",
"brand": "Glaxo",
"status": "ACTIVE"
}
]
}
我正在尝试按照以下代码将这些数据填充到表格中,但无法为月份下拉列表添加“selected=selected”,请帮忙
$.ajax({
type: "GET",
url: "updateDistributionData",
data: {
userId: userid
},
dataType: 'json',
//if received a response from the server <button type="button" class="delete-row">Delete Row</button>
success: function(data) {
$.each(data.respData, function(key, value) {
var salesTargetId = value.salesTargetId.trim();
var actionSelect = '<select id="Action"> <option value="Update">Update</option> <option value="Delete">Delete</option> </select>';
var month ='<select id="updateMonth">'+
'<option value="Jan">January</option><option value="Feb">February</option><option value="Mar">March</option><option value="Apr">April</option>' +
'<option value="May">May</option><option value="Jun">June</option><option value="Jul">July</option><option value="Aug">August</option>'+
'<option value="Sep">September</option><option value="Oct">October</option><option value="Nov">November</option><option value="Dec">December</option></select>';
var html = '<tr>' +
'<td><input type="hidden" name=delete-item id="'+salesTargetId+'" value="'+salesTargetId+'"/>'+actionSelect+'</td>' +
'<td><input type="text" value="' + value.year + '"/></td>' +
'<td>'+month'</td>' +
'<td><input type="text" value="' + value.brand + '"/></td>' +
'<td><input type="text" value="' + value.target + '"/></td>' +
'<td><input type="text" value="' + value.actual + '"/></td>' +
'</tr>';
$('#update-distribution tr').first().after(html);
});
}
});
解决方案
如果您正在尝试让我们说从下拉列表中选择四月
你可以运行这个
let m = 'April';
let shorter = m.substr(0, 3);
console.log(shorter);
$('#selector').val(shorter);
您也可以在下拉列表中执行 if/else ,但这会更长。
在你的情况下
$.each(data.respData, function(key, value) {
var salesTargetId = value.salesTargetId.trim();
var actionSelect = '<select id="Action"> <option value="Update">Update</option> <option value="Delete">Delete</option> </select>';
var month ='<select class="updateMonth" data-key="' + key + '">'+
'<option value="Jan">January</option><option value="Feb">February</option><option value="Mar">March</option><option value="Apr">April</option>' +
'<option value="May">May</option><option value="Jun">June</option><option value="Jul">July</option><option value="Aug">August</option>'+
'<option value="Sep">September</option><option value="Oct">October</option><option value="Nov">November</option><option value="Dec">December</option></select>';
var html = '<tr>' +
'<td><input type="hidden" name=delete-item id="'+salesTargetId+'" value="'+salesTargetId+'"/>'+actionSelect+'</td>' +
'<td><input type="text" value="' + value.year + '"/></td>' +
'<td>'+month+'</td>' +
'<td><input type="text" value="' + value.brand + '"/></td>' +
'<td><input type="text" value="' + value.target + '"/></td>' +
'<td><input type="text" value="' + value.actual + '"/></td>' +
'</tr>';
$('#update-distribution tr').first().after(html);
$('.updateMonth[data-key="' + key + '"]').val(value.month.substr(0,3))
});
推荐阅读
- azure - 使用 MS Bot Framework 将 JWT 保存在 UserState/Azure Blob 存储上是否安全?
- mysql - MySQL 查询提取到 csv,但信息不在正确的行中
- typescript - Vincit/Objection.js 在使用 .withGraphFetched() 时返回“无法读取未定义的属性 '$relation'”
- pip - pip install 创建一个真正的目录
- azure-devops - 如何在 Yaml Bash 步骤中存储从 CLI 创建的 Databricks 令牌
- ruby-on-rails - ActiveRecord 存储文档不清楚附件过程
- powerbi - PowerBi 中的旭日图帮助
- selenium - 如何使用 xpath 定位上部子元素
- javascript - 在 React 中动态添加背景 url
- c++ - 等效于 C 程序中的 emplace 和 reserve 函数