我之前曾问过一个保存值的问题,因为我的代码正在删除数组中的最后一个值,然后我意识到要删除值的那一部分,所以我更改了语法。现在的问题是,当我提交表单时,它仅采用第二个下拉列表中的值,而第一个下拉列表中的值返回空值。来自第一个下拉列表的原始值与诸如vehicleID_driverID
这样的定界符组合,例如14_2
。
这是我的新代码:
$(document).ready(function () {
$('#VehicleID').change(function () {
var v = $(this).val();
//if (v == "0") {
// return;
//}
var val = v.split("_");
var drvid = val[1];
var vehid = val[0];
if (drvid == "0") {
$("#DriverID > option").each(function () {
$(this).show();
});
}
else {
$("#DriverID > option").each(function () {
var option_val = $(this).val();
if (option_val != drvid) {
$(this).hide();
}
});
}
$("#DriverID").val(drvid);
$("#VehicleID").val(vehid);
}).trigger("change");
})
控制器:
public ActionResult ReserveInitial()
{
ViewBag.VehicleID = db.Vehicles.Where(item => item.IsReserved == false).Select(a => new SelectListItem
{
Value = a.VehicleID.ToString() + "_" + a.DriverID.ToString(),
Text = a.VehicleMake + " - " + a.PlateNumber,
});
ViewBag.DriverID = db.Drivers.Select(a => new SelectListItem
{
Value = a.DriverID.ToString(),
Text = a.DriverLastName + ", " + a.DriverFirstName
});
return View();
}