复选框计数 select 全部
checkbox count with select all
我必须使用 select all 选项创建复选框计数,当每个复选框我 select 计数有效但当 select all 选项它不起作用时它工作我'我在 ASP.NET MVC 中实现,这是我的代码
javascript
var countChecked = function () {
var n = $('input[name="DocNames"]:checked').length;
$("#span").text(n + (n === 1 ? " document is" : " documents are") + " checked!");
};
countChecked();
$('input[name="DocNames"]').on("click", countChecked);
$('#select_all').click(function (e) {
$(this).closest('table').find('td input[name="DocNames"]').prop('checked', this.checked);
})
html代码
<table class="table">
<tr>
<th>Documnet Name</th>
</tr>
<tr>
<td><label><input type="checkbox" name="select_all" id="select_all" />Select All</label></td>
</tr>
@if (Model.Documents != null)
{
foreach (var item in Model.Documents)
{
<tr>
<td>
<label>
<input type="checkbox" name="DocNames" value="@item.DocumentName.Trim()" />
@item.DocumentName.Trim()
</label>
</td>
</tr>
}
}
else
{
<tr>
<td>@ViewBag.NoDocuments</td>
</tr>
}
<div id="span"></div>
如果你还没有按照@Andreas 的建议解决你的问题(这是正确的答案),我会用答案格式再说一遍:
在您的代码中,您在每个复选框的点击事件上调用了 countChecked()。因此,countChecked() 会执行它的操作。
但是在 SelectAll 复选框的事件处理程序中,您忘记再次调用 countChecked()。
因此您必须在代码末尾调用它,如下所示:
$('#select_all').click(function (e) {
$(this).closest('table').find('td input[name="DocNames"]').prop('checked', this.checked);
countChecked();
})
或者,更笨拙地触发任何复选框的点击事件。
不过以上是最好的
我必须使用 select all 选项创建复选框计数,当每个复选框我 select 计数有效但当 select all 选项它不起作用时它工作我'我在 ASP.NET MVC 中实现,这是我的代码 javascript
var countChecked = function () {
var n = $('input[name="DocNames"]:checked').length;
$("#span").text(n + (n === 1 ? " document is" : " documents are") + " checked!");
};
countChecked();
$('input[name="DocNames"]').on("click", countChecked);
$('#select_all').click(function (e) {
$(this).closest('table').find('td input[name="DocNames"]').prop('checked', this.checked);
})
html代码
<table class="table">
<tr>
<th>Documnet Name</th>
</tr>
<tr>
<td><label><input type="checkbox" name="select_all" id="select_all" />Select All</label></td>
</tr>
@if (Model.Documents != null)
{
foreach (var item in Model.Documents)
{
<tr>
<td>
<label>
<input type="checkbox" name="DocNames" value="@item.DocumentName.Trim()" />
@item.DocumentName.Trim()
</label>
</td>
</tr>
}
}
else
{
<tr>
<td>@ViewBag.NoDocuments</td>
</tr>
}
<div id="span"></div>
如果你还没有按照@Andreas 的建议解决你的问题(这是正确的答案),我会用答案格式再说一遍:
在您的代码中,您在每个复选框的点击事件上调用了 countChecked()。因此,countChecked() 会执行它的操作。
但是在 SelectAll 复选框的事件处理程序中,您忘记再次调用 countChecked()。
因此您必须在代码末尾调用它,如下所示:
$('#select_all').click(function (e) {
$(this).closest('table').find('td input[name="DocNames"]').prop('checked', this.checked);
countChecked();
})
或者,更笨拙地触发任何复选框的点击事件。
不过以上是最好的