我有一个选择框,动态填充从数据库中提取的选项。在使用所有可用选项填充之后,应该填充当前所选选项。问题是,选择框实际上不会像代码告诉它那样设置值。
以下是我所拥有的:
//Calling the function to populate the lots
vehicles.populateLots('selVOLot');
//Getting the Vehicle Owner data
var vehicleOwner = functions.getVehicleOwnerSearchResults(vehicleID, '', '', '', '', '', '', '', peopleID, academicYear, '', '', '', 0);
console.log('lot = ' + vehicleOwner[0].ParkingTag);
$('#selVOLot').val(vehicleOwner[0].ParkingTag);
这是用于填充选项的函数:
//Function used to populate the Lots select box(s)
vehicles.populateLots = function (ID) {
console.log('populating lots = ' + ID);
//Getting the Lots
var lots = functions.getLots();
//Emptying the existing lot
$('#' + ID).empty();
//Setting it to a variable
voLot = document.getElementById(ID);
if (ID == 'selVSLot') {
voLot.options[voLot.options.length] = new Option('All', '');
voLot.options[voLot.options.length] = new Option('No Lot', 'NO');
} else {
voLot.options[voLot.options.length] = new Option('', '');
}
//Populating the lot select options
for (var h = 0; h < lots.length; h++) {
voLot.options[voLot.options.length] = new Option(lots[h].LotCode,
lots[h].LotCode);
}
}
所以要一步一步地走过去:
第3步是问题所在。代码似乎忽略了行$('#selVOLot').val(vehicleOwner[0].ParkingTag);
。我甚至将值写入控制台以确保它实际上带回了一个值。控制台值是正确的。我为什么这不起作用而感到茫然。
修改 我不知道如何在这里链接一个名字,Pointy,但是,它正确填充。这是通过控制台的HTML屏幕截图:https://imgur.com/6Ri1uaF
编辑#2
所以这一刻变得越来越陌生。显然,如果该值小于3个字符,则不会填充。如果我找到一个具有COM值的人,它就会加载得很好。但是,如果我发现某人具有B的价值,那么它就不会被填充。
答案 0 :(得分:0)
所以我去看了数据库,发现了问题。价值之后还有一个空格。 FML。