MVC6 - 如果(勾选复选框)则删除线
MVC6 - if(checkbox ticked) then strikethrough
我有以下代码:
<table class="table">
@foreach (var item in Model.AllTasks)
{
<tr>
<td>
<input type="checkbox"/>
</td>
<td>
@Html.DisplayFor(modelItem => item.TaskDetails)
</td>
</tr>
}
我希望能够读取该复选框是否已勾选,如果已勾选,则在 TaskDetails 上应用删除线。目前我正在努力寻找任何简单的方法来实现这一目标。
有什么想法吗?谢谢!
向您的模型添加一个布尔值 属性 以确定任务是否完成:
public bool IsComplete { get;set; }
那么在您看来,您可以执行以下操作:
@foreach (var item in Model.AllTasks)
{
@:<tr>
<td>
<input type="checkbox"/>
</td>
<td>
@if (item.IsComplete)
{
@:<strike>
}
@Html.DisplayFor(modelItem => item.TaskDetals)
@if (item.IsComplete)
{
@:</strike>
}
</td>
@:</tr>
}
这只是检查状态,然后有条件地打印 strike
标签。
如果您想通过 javascript 执行此操作,因为他们会选中此框,您可以使用以下代码:
$("[type=checkbox]").change(function() {
if(this.checked) {
$(this).parent().next().wrapInner("<strike></strike>")
}
});
这会用 strike
标签动态换行文本。
使用 jquery
你可以像下面的代码片段一样轻松地做到这一点。
$("input[type=checkbox]").change(function() {
if (this.checked) {
$(this).parent().next().css('text-decoration', 'line-through');
} else {
$(this).parent().next().css('text-decoration', 'none');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td><input type="checkbox"></td><td> Box 1 </td>
</tr>
<tr>
<td><input type="checkbox"></td><td> Box 2 </td>
</tr>
<tr>
<td><input type="checkbox"></td><td> Box 3 </td>
</tr>
<tr>
<td><input type="checkbox"></td><td> Box 4 </td>
</tr>
</table>
我有以下代码:
<table class="table">
@foreach (var item in Model.AllTasks)
{
<tr>
<td>
<input type="checkbox"/>
</td>
<td>
@Html.DisplayFor(modelItem => item.TaskDetails)
</td>
</tr>
}
我希望能够读取该复选框是否已勾选,如果已勾选,则在 TaskDetails 上应用删除线。目前我正在努力寻找任何简单的方法来实现这一目标。
有什么想法吗?谢谢!
向您的模型添加一个布尔值 属性 以确定任务是否完成:
public bool IsComplete { get;set; }
那么在您看来,您可以执行以下操作:
@foreach (var item in Model.AllTasks)
{
@:<tr>
<td>
<input type="checkbox"/>
</td>
<td>
@if (item.IsComplete)
{
@:<strike>
}
@Html.DisplayFor(modelItem => item.TaskDetals)
@if (item.IsComplete)
{
@:</strike>
}
</td>
@:</tr>
}
这只是检查状态,然后有条件地打印 strike
标签。
如果您想通过 javascript 执行此操作,因为他们会选中此框,您可以使用以下代码:
$("[type=checkbox]").change(function() {
if(this.checked) {
$(this).parent().next().wrapInner("<strike></strike>")
}
});
这会用 strike
标签动态换行文本。
使用 jquery
你可以像下面的代码片段一样轻松地做到这一点。
$("input[type=checkbox]").change(function() {
if (this.checked) {
$(this).parent().next().css('text-decoration', 'line-through');
} else {
$(this).parent().next().css('text-decoration', 'none');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td><input type="checkbox"></td><td> Box 1 </td>
</tr>
<tr>
<td><input type="checkbox"></td><td> Box 2 </td>
</tr>
<tr>
<td><input type="checkbox"></td><td> Box 3 </td>
</tr>
<tr>
<td><input type="checkbox"></td><td> Box 4 </td>
</tr>
</table>