Ранее я задавал вопрос о сохранении значений, так как мой код удалял последнее значение в массиве, затем я понял, в какой части он удаляет значение, поэтому я изменил синтаксис.Проблема в том, что когда я отправляю форму, она берет значение только из второго раскрывающегося списка, а значение из первого раскрывающегося списка возвращает нулевое значение.Исходное значение из первого выпадающего списка объединяется с таким разделителем, как этот 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();
}