MVC 5 - 剃刀、Javascript 初心者ユーザー!テーブル内の各行に対してOnChangeイベントを実行する - MVC
テーブルでチェックボックスが変更されたときに、単純なonchangeイベントを実行できるようにしたいのですが、onchangeは最初の行に対してのみ機能します。
これは、スクリプトが最初の行でのみ実行され、後で動的に入力されるデータに対して実行されないためです。
私はこれを理解していますが、それを修正する方法はわかりません...私は、各行の各チェックボックスに個別のIDを作成する必要があると仮定します。
また、チェックボックスのIDが異なる場合、私はそれらを参照してオンチェンジを追加する方法がわかりません。
希望はこれが理にかなっています。前もって感謝します。
@model IEnumerable<core_point.Models.RegisterEmployee_Step6Model>
@{
ViewBag.Title = "Index";
}
<h2>Select the roles that you have been employed to do, by clicking the check-box...</h2>
<table class="table">
@foreach (var item in Model)
{
<tr class="h3">
<td class="vert-align">
<img src="@item.IconLocation" height="80" width="80" />
</td>
<td class="vert-align">
@Html.CheckBoxFor(modelItem => item.Selected, new { @id = "CheckBoxSelected" })
</td>
<td class="vert-align">
@Html.DisplayFor(modelItem => item.RoleDescription)
</td>
<td class="vert-align">
@Html.TextBoxFor(modelItem => item.Role, new { hidden = "hidden"})
</td>
</tr>
}
</table>
<div>
Roles selected:<input type="number" id="noSelected" value="0"/>
</div>
<script>
var fld_CheckBoxSelected = document.getElementById("CheckBoxSelected");
var fld_noSelected = document.getElementById("noSelected");
fld_CheckBoxSelected.onchange = function() {
if (fld_CheckBoxSelected == true) {
fld_noSelected = fld_noSelected.value + 1;
}
else
{
fld_noSelected = fld_noSelected.value - 1;
}
}
</script>
解決に感謝します。それはうまくいった。 – Ste