Я использую MVC3 и Entity Framework.У меня есть список на странице с флажками для пользователя, чтобы выбрать несколько элементов.(Цель состоит в том, чтобы «переназначить» кратные значения за раз).
Когда пользователь нажимает кнопку «Переназначить», он вызывает диалоговое окно JQuery для отображения и загружает частичное представление.В частичном представлении у меня есть скрытое поле для флажков, которые были выбраны.
Примером может быть:
<input type="hidden" value="2,4,5" class="tasks" name="tasks" />
Однако мой код работает слишком быстро, чтобы JQuery мог захватить, какие флажки были отмечены.Когда я просматриваю диалоговое окно HTML в Firebug, значение пустое.
Я проверил свой код, выполнив:
var checkeditems = $('input:checkbox[name="selectedObjects"]:checked').map(function () { return $(this).val() }).get().join(",");
alert(checkeditems);
$('input.tasks').val(checkeditems);
Странно, значения помещаются в скрытое поле.Без предупреждения их там нет.
Вот мой Javascript:
$('#ReAssign').bind('click', function (event, ui) {
GetReassign();
return false;
});
function GetReassign() {
$("#ReassignDialog").dialog({
height: 315,
width: 525,
modal: true,
draggable: false,
resizable: false,
open: function (event, ui) {
$(this).load('/InterviewFollowup/ReassignPartial');
},
buttons: {
Ok: function () {
$(this).dialog("close");
}
}
});
var checkeditems = $('input:checkbox[name="selectedObjects"]:checked').map(function () { return $(this).val() }).get().join(",");
$('input.tasks').val(checkeditems);
}
Вот мой Вид:
@using (Html.BeginForm("ReassignPost","InterviewFollowup")) {
<fieldset>
<legend><strong>Re-Assign Task</strong></legend>
<input type="hidden" value="" id="tasks" class="tasks" name="tasks" />
<div class="editor-label">
Location:
</div>
<div class="editor-field">
@Html.DropDownList("MailCodes", (SelectList)ViewBag.MailCodes,"-- Select --")
@Html.ValidationMessage("MailCodes")
</div>
<br />
<div class="editor-label">
@Html.LabelFor(model => model.AssignedTo)
</div>
<div class="editor-field">
<select name="AssignedTo" id="AssignedTo"></select>
</div>
<div class="editor-label">
Notes:
</div>
<div class="editor-field">
<input type="text" name="Notes" id="Notes" />
@Html.ValidationMessage("Notes")
</div>
<p>
<input type="submit" value="Submit" />
<input type="button" value="Cancel" />
</p>
</fieldset>
}