【发布时间】:2017-07-18 23:02:38
【问题描述】:
使用 ASP.Net Core MVC
该网站包含多个包含酒店的下拉菜单,一旦用户选择了酒店,Ajax 调用就会返回所选酒店的酒店客房。用户最多可以选择 10 个酒店 + 酒店房间组合,因此酒店和酒店房间下拉菜单的每个部分都在单独的局部视图中。
当我从一个局部视图中选择一家酒店时,所有酒店下拉菜单都会移动到同一家酒店。
我认为这是我的 javascript 中的某些东西,所以我注释掉了所有相关的 javascript,除了获取酒店的调用。这是我的代码:
局部视图
@model Cfv3.Models.Vacation.SelectHotelRoom
<select class="hotel-dropdown" name="hotel"></select>
<select class="hotelroom-dropdown" name="hotel"></select>
调用视图
<div class="form-horizontal">
@for (int i = 0; i < Model.IncludedHotels.Count; i++)
{
@Html.Partial("_PossibleHotelRoom", Model.IncludedHotels[i])
<hr/>
}
</div>
加载时 Ajax 加载酒店
$.get('GetHotels', function (data) {
//console.log(data);
$.each(data, function (index, value) {
//console.log(value.id + " " + value.name)
$('<option>').val(value.id).text(value.name).appendTo('.hotel-dropdown');
});
});
【问题讨论】:
-
.appendTo('.hotel-dropdown')将附加到页面上的 每个 匹配元素。您需要具体确定要附加到哪一个。$.get()在什么情况下运行?是响应特定元素触发的页面上的某些事件吗?这样的元素可以作为一个起点,用 jQuery 遍历 DOM 来识别你想要的特定下拉列表。
标签: javascript jquery asp.net-mvc this