文本框求和是指通过jQuery选择多个文本框元素,获取它们的值并进行数值相加的操作。这在表单处理、财务计算、数据统计等场景中非常常见。
$(document).ready(function() {
// 为文本框添加change事件监听
$('.sum-input').change(function() {
calculateSum();
});
function calculateSum() {
var sum = 0;
// 遍历所有class为sum-input的文本框
$('.sum-input').each(function() {
// 获取值并转换为数字,空值或非数字视为0
var value = parseFloat($(this).val()) || 0;
sum += value;
});
// 将结果显示在指定元素中
$('#total').text(sum.toFixed(2));
}
});
$(document).ready(function() {
// 使用input事件实现实时计算
$('.sum-input').on('input', function() {
var sum = 0;
$('.sum-input').each(function() {
var value = parseFloat($(this).val()) || 0;
sum += value;
});
$('#total').val(sum.toFixed(2));
});
});
原因:文本框包含非数字字符,parseFloat无法转换
解决:
var value = isNaN(parseFloat($(this).val())) ? 0 : parseFloat($(this).val());
原因:事件绑定在DOM加载时完成,新增元素未绑定事件
解决:使用事件委托
$(document).on('input', '.sum-input', function() {
calculateSum();
});
原因:JavaScript浮点数运算精度问题
解决:
// 使用toFixed或乘以100后转为整数计算
sum = (sum * 100) / 100;
// 或
sum.toFixed(2);
<!DOCTYPE html>
<html>
<head>
<title>jQuery文本框求和</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<h2>金额计算</h2>
<input type="text" class="sum-input" placeholder="输入金额">
<input type="text" class="sum-input" placeholder="输入金额">
<input type="text" class="sum-input" placeholder="输入金额">
<div>总计: <span id="total">0.00</span></div>
<script>
$(document).ready(function() {
// 实时计算
$(document).on('input', '.sum-input', function() {
var sum = 0;
$('.sum-input').each(function() {
var value = parseFloat($(this).val()) || 0;
sum += value;
});
$('#total').text(sum.toFixed(2));
});
// 也可以添加按钮触发计算
$('#calculate').click(function() {
calculateSum();
});
});
</script>
</body>
</html>
这个实现可以满足大多数文本框求和的需求,根据具体场景可以进一步扩展功能,如添加验证、格式化显示等。