次のことを達成する方法について質問があります。
アクティビティを含むドロップダウンリストがあり、アクティビティの onchange イベントで、ajax を使用してモデルに設定されている ID でリストがフェッチされるようにしたい
私のコードの例は次のとおりです
IDを設定するAjaxメソッド
function GetSelectedValue(DropDownID, HiddenFieldID) {
$('#' + HiddenFieldID).val($('#' + DropDownID + ' option:selected').val());
$('#' + DropDownID).change(function () {
$('#' + HiddenFieldID).val($('#' + DropDownID + ' option:selected').val());
$.ajax({
url: 'Afmeldingen',
type: "POST",
data: JSON.stringify({ 'ActiviteitenID': $('#' + DropDownID + ' option:selected').val() }),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
jQuery.globalEval(data.Callback);
},
error: function (error) {
//alert(error);
}
});
});
}
$(document).bind('pageinit', function () {
GetSelectedValue('details', 'act_id');
});
フォーム要素
@using (Html.BeginForm())
{
<div data-role="collapsible" data-inline="true" data-content-theme="b" data-collapsed="false">
<h3>@DateTime.Today.ToShortDateString()</h3>
<div data-role="collapsible-set" data-inline="true" data-content-theme="b" data-collapsed="true">
<select id="details">
@foreach (var item in Models.Taken.ActivityList)
{
<option value="@item.ID">@item.Comments</option>
}
</select>
@Html.Hidden("act_id")
@foreach (var item in Talent.Subscription.Fetch(null, Models.Taken.ActID ?? 1L, null, null))
{
<div data-role="collapsible" data-content-theme="b" data-collapsed="true">
<h3>
@Html.Label("", item.Participant.CompleteName)
</h3>
@Html.CheckBoxFor(m => m.DeelnemerActive.HasValue, htmlAttributes: new { data_role = "CheckBox" })
@foreach (var af in Talent.Afmelding.Fetch(null, Models.Tasks.ActID ?? 1L, null, null))
{
@Html.Label("", "Comments")
@Html.TextBox("Reason", af.Reason);
}
</div>
}
</div>
</div>
}
これを達成するのを手伝ってくれることを願っています。または、これを行う方法を知っていることを願っています