Я пытаюсь передать некоторые данные в мой контроллер с помощью модального режима. На странице имеется несколько модальных режимов, и я считаю, что передаются только данные из первого модального режима, независимо от того, были ли данные отредактированы в другом.
<div id="mark-reassigned-modal" class="modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 id="myModalLabel">@Employee_Index.MarkReassignedHeading</h4>
</div>
<div class="modal-body">
<div class="alert alert-warning">
@Employee_Index.MarkReassignedText
</div>
@Html.EditorFor(m => m.DateTimePicker, new { htmlAttributes = new { name = "DateTimePicker", @style = "width:50%;" } })
@Html.TextAreaFor(m => m.DispositionNotes, new { cols = "50%", rows = "3" })
</div>
<div class="modal-footer">
<button type="button" class="btn btn-danger dirtyignore" aria-hidden="true" id="mark-reassigned-submit">@Employee_Index.YesExcuseText</button>
<a href="#" class="btn btn-link cancel dirtyignore" data-dismiss="modal" aria-hidden="true">@Common.Cancel</a>
</div>
</div>
</div>
</div>
<div id="mark-new-shift-modal" class="modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 id="myModalLabel">@Employee_Index.MarkNewShiftHeading</h4>
</div>
<div class="modal-body">
<div class="alert alert-warning">
@Employee_Index.MarkNewShiftText
</div>
@Html.EditorFor(m => m.DateTimePicker, new { htmlAttributes = new { name = "DateTimePicker", @style = "width:50%;" } })
@Html.TextAreaFor(m => m.DispositionNotes, new { cols = "50%", rows = "3" })
</div>
<div class="modal-footer">
<button type="button" class="btn btn-danger dirtyignore" aria-hidden="true" id="mark-new-shift-submit">@Employee_Index.YesExcuseText</button>
<a href="#" class="btn btn-link cancel dirtyignore" data-dismiss="modal" aria-hidden="true">@Common.Cancel</a>
</div>
</div>
</div>
</div>
JS для этого выглядит следующим образом:
$(document).on("click", "#mark-new-shift-submit", function () {
var resultsContainer = $('#results');
resultsContainer.block({
message: '<i class="fa fa-icon fa-spin fa-spinner bigger-230" />'
});
var data = $('#Index').serialize();
$.ajax({
type: "POST",
url: '@Url.Action("MarkNewShift", "Employee")',
data: data,
dataType: "html",
success: function (data) {
$('#mark-new-shift-modal').modal('hide');
$("#results").html(data);
updatePagination();
resultsContainer.unblock();
$('#employee-list').selectableTable();
clearSelections();
}
});
});
Когда я проверяю идентификатор #Index, я обнаруживаю, что для DateTimePicker есть несколько результатов, и он принимает только первый. Как я могу сделать сборщик глобальным, чтобы в #Index был только один результат. Это также может дать пользователю возможность продолжить с того места, на котором он остановился, если он решит использовать другую опцию.