如何对选定的复选框行值求和
how can I sum selected checkbox(s) row values?
我在 asp.net mvc 中有一个表。 在这个表中,我的每一行都有一个复选框。我希望当我选中复选框时,在该行中找到工资值,并与选中的其他行工资求和。我想通过 Jquery 或 java 脚本来做这个总和。
@foreach (var item in Model)
{
<tr id="rowid">
<td>
<input type="checkbox" name="chk-@intCount" id="chk-@intCount" class="chkclass" />
</td>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.TechnicalNo)
</td>
<td class="sum" id="wagein">
@Html.DisplayFor(modelItem => item.Wage)
</td>
<td class="sum" id="time">
@Html.DisplayFor(modelItem => item.Time)
</td>
</tr>
}
这是我在 MVC 中的代码 asp.net. 我现在如何在工资和时间中对检查值求和?
编辑:
我的j查询代码:
<script src="/Scripts/jquery-1.4.4.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$('.chkclass').click(function() {
var sum = 0;
$('.chkclass:checked').each(function() {
sum += parseFloat($(this).closest('tr').find('.wagein').text());
});
$('#sum').html(sum);
});
});
</script>
我的 HTML 代码 :
<tr>
<td>
<input type="checkbox" name="chk-1" id="chk-1" class="chkclass" />
</td>
<td class="sum wagein">
10
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="chk-2" id="chk-2" class="chkclass" />
</td>
<td class="sum wagein">
10
</td>
</tr>
任何想法?! 有什么问题?!
首先修复您的标记,因为它非常损坏。请记住,ID 在整个 HTML 文档中必须是唯一的:
@foreach (var item in Model)
{
<tr>
<td>
<input type="checkbox" name="chk-@intCount" id="chk-@intCount" class="chkclass" />
</td>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.TechnicalNo)
</td>
<td class="sum wagein">
@Html.DisplayFor(modelItem => item.Wage)
</td>
<td class="sum">
@Html.DisplayFor(modelItem => item.Time)
</td>
</tr>
}
然后,您可以订阅复选框的.click()
事件,并为所有工资累积一笔款项:
$(function() {
$('.chkclass').click(function() {
var sum = 0;
$('.chkclass:checked').each(function() {
sum += parseFloat($(this).closest('tr').find('.wagein').text());
});
alert(sum);
});
});
这里有一个现场演示,可以看到它的实际效果:http://jsfiddle.net/pbkjr/
好的,从您显示的标记开始,用<table></table>
标签正确包装,下面有一个div以显示总数:
<table>
<tr>
<td>
<input type="checkbox" name="chk-1" id="chk-1" class="chkclass" />
</td>
<td class="sum wagein">
10
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="chk-2" id="chk-2" class="chkclass" />
</td>
<td class="sum wagein">
10
</td>
</tr>
</table>
<div id="total"></div>
以下 jquery(@Darin写入的)将在单击任何复选框时对所有选中的行求和:
$('.chkclass').click(function() {
var sum = 0;
$('.chkclass:checked').each(function() {
sum += parseFloat($(this).closest('tr').find('.wagein').text());
});
$('#total').html(sum);
});
这与 Darin 的原版非常接近,除了我更改了最后一行以将总数输出到 id 为 total
的div 中。这似乎比将总和写入每一行更有可能!
这可以从这个实时示例中看到:http://jsfiddle.net/ADE3a/
jQuery(document).ready(function ($) {
var sum = 0;
$('input[type=checkbox]').click(function () {
sum = 0;
$('input[type=checkbox]:checked').each(function () {
sum += parseFloat($(this).closest('div').find('.payment').val());
});
$('#total').val(sum);
});
});
达林·季米特洛夫
谢谢吨。我遇到了一个问题,我想为选中的复选框添加隐藏字段并将复选框值(真或假)传递给控制器。
@Html.CheckBoxFor 正在为每个复选框在其旁边创建一个隐藏字段
我正在使用 $(this).next().val() 这让我面临 NAN 问题。 因为它正在获取隐藏字段的值。
感谢您的帖子,我能够获得下一个div 隐藏字段值
我做了下面这样的事情
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- 正在验证8个真/假复选框或复选框中的2个
- 为复选框javascript指定两个值
- 如何在单击复选框后调用控制器方法
- 从复选框和Selects-KnockoutJS中获取值的总和
- 选中多个具有相同名称的复选框
- 使用Jquery选择或取消选择ListView中的所有复选框
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 使用$.ajax发布多个复选框
- AngularJS单选筛选不适用于Name、Description和Field4复选框值
- 使用jquery选中/取消选中单个复选框
- jQuery根据相关复选框选择求和单元格
- 如何对选定的复选框行值求和
- 不带POSTING值的求和复选框-Javascript
- JQuery使用复选框值和文本框值求和
- 使用复选框决定要求和的输入框值
- 如何对选中的值求和更改复选框jquery
- Jquery / javascript只有在同一行的复选框被选中时才会求和字段
- 如何求和从复选框检索的数组的字符串值
- Javascript -在对不同的输入求和后选中/取消选中复选框