在 MVC 5 的谷歌地图信息视图中的部分视图中未调用下拉列表的 Jquery 更改事件



在我的 ASP.NET MVC index.cshtml页面上,我使用ajax成功地将部分视图加载到谷歌地图信息窗口中,如下所示:

$.ajax({
            url: '/Map/BusForm/@bus.Id',
            success: function(data)
            {
                infoWindows["@bus.Id"].setContent(data);
            }
        });

然后在部分视图中,我有这些表单助手来创建下拉列表(这也有效,数据已正确填充并且表单成功提交)。

@using (Ajax.BeginForm("BusForm", "Map", new AjaxOptions
{
    InsertionMode = InsertionMode.Replace,
    UpdateTargetId = "results",
    LoadingElementId = "loader"
}))
{
    <h4>Line:</h4>
    @*@Html.DropDownListFor(x => x.LineId, Model.GetLines(), "--Choose Train Line--")*@
    @Html.DropDownListFor(x => x.LineId, Model.GetLines(), "--Choose Train Line--", new { @class = "lineDDL" })
    <h4>Destination: </h4>
    @Html.DropDownListFor(x => x.StationId, Model.GetStations(), "--Choose Destination--")
    <div id="loader" style="display:none">Loading</div>
    <div id="results"></div>
    <input type="submit" value="Save" />
}

我想使第二个下拉列表中的值从第一个下拉列表中依赖(级联),所以我需要获取更改事件。所以在 Index.cshtml 上,我在"脚本部分"中有这个脚本,但它没有被调用。

    $(document).ready(function() {
        $("#LineId").on("change", function() 
        {
            console.log('change was called');
        });
    });

哎呀,太简单了。

我只是改变了

$(document).ready(function() {
    $("#LineId").on("change", function() 
    {
        console.log('change was called');
    });
});

$(document).on("change", "#LineId", function() 
    {
        console.log('change was called');
    });

现在它可以工作

最新更新