我有一个包含所有员工姓名的下拉列表
@Html.DropDownListFor(n => n.EMP_ID, (SelectList)ViewBag.EmployeeList,"== Choose an Employee Name==", new { @id = "ddlemployee" })
和jave文本动态文本框如
<table>
@for(int i=0;i<count;i++)
{
<tr>
<td>@Html.TextBoxFor(m => m.GetTimeSheetDetails[i].SUN_HRS, new { style = "width:50px; height:30px;", @class = "sunhrs" })
</tr>
<tr>
<td>
@Html.Label("lbl_Sunhrs", new { @id = "lblSunhrs" })
</td>
</tr>
}
</table>
其中“ddlemployee”填充所有员工姓名,当选择员工时,将转到控制器并获取数据并在文本框中填充数据,如:
<script src="//code.jquery.com/jquery-1.4.1.js"></script>
<script>
$(document).ready(function () {
$("#ddlemployee").change(function () {
debugger;
var startdate = $("#txtStartDate").val();
var empid = $("#ddlemployee").val();
location.href = '@Url.Action("GetEmployeeDetails", "Employer")?empid=' + empid + '&&projectId=0&&startdate=' + startdate;
return false;
});
$("#btnUpdate").click(function () {
var empid = $("#ddlemployee").val();
if (empid != 0) {
var msg= confirm("Are You Sure? Do You Want to Update the Record?");
if (msg == false) {
alert("You have cancel Updating the record");
return false;
}
else {
return true
}
}
else {
alert("Please Select Employee name");
return false;
}
});
});
</script>
我的问题是,在这里我要总结所有文本框值的所有“sunhrs”并在根据员工姓名获取数据后在“lblsunhrs”上显示标签总值
$(document).ready(function(){
var total=0;
$('.sunhrs').each(function(){
total += Number($(this).val());
});
$('.total').text(total);
});
问题是它计算两次相同的元素,例如,如果将sunhrs值的数据填充为'2',总计为'4',为什么会发生这种情况,是DOM效果?是否有任何替代解决方案,为此,为了完美的计算,请帮助我。