jQuery-在定界符替代之后获取价值?

时间:2018-08-23 16:34:03

标签: javascript jquery asp.net-mvc

我之前已经进行了搜索,并尝试同时使用pop()lastIndexOf,但在循环下拉菜单中效果不佳。

除了在定界符之后获取值,还有没有将其从列表中删除的方法之外,还有其他选择吗?

这是我的代码:

    $(document).ready(function () {
        $('#VehicleID').change(function () {
            var vehdrv = ($('#VehicleID :selected').val());
            var drvid = vehdrv.split("_").pop();
            var vehid = vehdrv.split("_")[0];

            $('#VehicleID :selected').val(vehid);
            //alert($('#VehicleID :selected').val());

            if (drvid > 0) {
                $('#DriverID').find("option").show().not("option[value*='" + drvid + "']").hide();

                $("#DriverID").val(drvid);

                //$("#DriverID").val(
                //$("#DriverID").find("option:visible:first").val())
            }

            else {
                $("#DriverID").find("option").show();

                $("#DriverID").val(
   $("#DriverID").find("option:visible:first").val())
            }
        }).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();
    }

编辑 如果将VehicleID链接到驾驶员,则字符串将如下所示: “ 14_5”

如果VehicleID与驾驶员无关,则它看起来像这样: “ 15_0”

2 个答案:

答案 0 :(得分:0)

var parts = vehdrv.split("_");
var drvid = parts[1];
var vehid = parts[0];

答案 1 :(得分:0)

您可以尝试

var vehdrv = $('#VehicleID').val().match(/[^_]+/g);
  var drvid = vehdrv[0];
  var vehid = vehdrv[1];
 
 console.log(drvid,vehid);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input id="VehicleID" type="text" value="14_5" name="text">