在我的ASP.NETMVCWeb应用程序中,我使用视图包将一些数据从控制器发送到组合框。
在视图中,当组合框的值发生变化时,有一个javascript,我使用 AJAX 调用再次将该值发送到控制器,并获取相关数据,然后在另一个文本框中显示它。
ViewBag.Task_Assigned_Branch_Id = new SelectList(db.Branch.Where(x=>x.Status ==true), "Id", "BranchName");
检视
<div class="form-group row">
@Html.LabelFor(model => model.Task_Assigned_Branch_Id, htmlAttributes: new { @class = "control-label col-md-3" })
<div class="col-sm-8">
@Html.DropDownList("Task_Assigned_Branch_Id", null, "Select the Branch", new { @class = "form-control js-dropdown js-Branch", @Id = "Branch" })
@Html.ValidationMessageFor(model => model.Task_Assigned_Branch_Id, "", new { @class = "text-danger" })
</div>
</div>
Javascript语言
$('.js-Branch').change(function () {
GetBranchMembers($(this).val())
});
这一招非常有效。
然后我想改变它,当发送数据到视图包,我想选择一个默认值到组合框,并将其发送到视图。
所以我把控制器代码改成了
ViewBag.Task_Assigned_Branch_Id = new SelectList(db.Branch.Where(x=>x.Status ==true), "Id", "BranchName", branchId);
现在,该值将作为组合框中的默认选定值加载。
为了在加载事件中获取组合框的值,我编写了以下代码
$(document).ready(function ()
{
var e = document.getElementById("js-Branch");
alert(e);
GetBranchMembers(e)
})
但id
返回空值。
我猜是因为我把默认值发送给了组合框,所以它没有把id传递给脚本或者其他什么东西。有没有其他的方法可以做到这一点?
1条答案
按热度按时间6pp0gazn1#
请尝试使用以下代码。我认为您使用了错误的id。您在getElementbyId函数中使用了类名