У меня есть страница со списком задач, в каждой из которых есть раскрывающийся список со списком команд, на которые назначается задача, но из-за количества задач я не могу предварительно заполнить ее в действии, поскольку она замедляется вниз нумерация страниц / отображение задач довольно значительно.
Поэтому вместо щелчка по раскрывающемуся списку у меня есть функция jquery, которая вызывает действие, возвращающее строку Json.
Все это прекрасно работает в Firefox, но в Chrome, когда пользователь нажимает на раскрывающийся список, выполняется вызов, но раскрывающийся список не заполняется. Пользователь должен щелкнуть мышью и снова открыть раскрывающийся список, в котором затем содержатся данные начального вызова (второго вызова нет).
Данные просто добавляются в HTML, но выпадающий список не обновляется.
$("#teamsSpanFor1354405").click(function () {
var issueId = 1354405;
var ddl = $("#teamsSpanFor1354405").find("select.ddlTeamsAssignTask");
if (ddl.find("option").length == 1) {
$.ajax({
url: '/Tracker/Task/DisplayAssignTaskToTeam',
data: { milestoneId: 1, issueId: issueId, jsonRequest: "true" },
type: 'POST',
async: true,
success: function (data) {
console.log(data);
var html = "<option value=''>Assign to Team</option>";
$.each(data, function () {
html += "<option value='" + this.Id + "'>" + this.Name + "</option>";
});
console.log(html);
ddl.html(html);
}
});
}
});
@using (Ajax.BeginForm("AssignTaskToTeam", new AjaxOptions { UpdateTargetId = "assignTaskForIssue" + Model.IssueId, OnSuccess = "ConfirmAssignment(" + Model.Milestone.Id + ")" }))
{
<input id="MilestoneId" name="MilestoneId" type="hidden" value="1"/>
<input id="InspectorIssueId" name="InspectorIssueId" type="hidden" value="1354405"/>
<span id="teamsSpanFor1354405">
<select id="TeamId" class="ddlTeamsAssignTask" style="width: 125px; " name="TeamId">
<option value="">Assign to Team</option>
</select>
<input class="btnAssign btnClassDisabled" type="submit" value="Assign" disabled="disabled"/>
</span>
}