ビューに動的チェックボックスがあります。しかし、うまく機能していないので、ここで常にチェックされているのは私のコードです:
<input type="checkbox" onclick = "InActiveUser('@item.UserId')" id = "@item.UserId" checked="@(item.IsActive == false ? false : true)" />
助けてくださいありがとう。
ビューに動的チェックボックスがあります。しかし、うまく機能していないので、ここで常にチェックされているのは私のコードです:
<input type="checkbox" onclick = "InActiveUser('@item.UserId')" id = "@item.UserId" checked="@(item.IsActive == false ? false : true)" />
助けてくださいありがとう。
Checked
true
属性はorを値として取りませんfalse
。この属性が存在するだけでチェックされます。要素をチェックしないままにしたい場合は、この属性を削除する必要があります。
この回答で詳細を読む
@if(item.IsActive)
{
<input type="checkbox" onclick = "InActiveUser('@item.UserId')"
id = "@item.UserId" checked="checked" />
}
else
{
<input type="checkbox" onclick = "InActiveUser('@item.UserId')"
id = "@item.UserId"/>
}
以下のコードを使用できます。
$("input[type='checkbox']").prop('checked', true); // Checked
$("input[type='checkbox']").prop('checked', false); // Un-Checked
上記のコードに注目すると、 prop 関数を使用して属性値を設定しています。JQuery - 1.6 バージョンを使用できます。条件に基づいて、以下のように JavaScript セクションに Razor コードを記述できます。
<script type="text/javascript">
$(document).ready(function () { //Some Razor code in JQuery
var status = "@status" == "True" ? true : false;
$("input[type='checkbox']").prop('checked', status);
});
</script>
View.cshtml のサーバー側サンプル コード
@{
var status = false;
}
JQuery
<script type="text/javascript">
$(document).ready(function () { //Some Razor code in JQuery
var status = "@status" == "True" ? true : false;
if (!status)
$("input[type='checkbox']").removeAttr('checked');
else
$("input[type='checkbox']").attr('checked', true);
});
</script>
cshtml のサーバー側コード
@{
var status = true;
}
上記の JQuery コードに注意すると、removeAttr
ステータス値が false の場合にチェック済み属性を削除し、attr
ステータスが true の場合に関数を使用して true に設定しています。
次のようにする必要があります。
<input type="checkbox" onclick = "InActiveUser('@item.UserId')"
id = "@item.UserId" checked="@item.IsActive" />
次のようなことを試してください:
@{
if (ViewBag.IsActive)
{
<input type="checkbox" id="@item.UserId" checked onclick = "InActiveUser('@item.UserId')"/>
}
else
{
<input type="checkbox" id="@item.UserId" onclick = "InActiveUser('@item.UserId')"/>
}
}