Jquery 多个文本字段的加减法
我有一个表,在其中我试图使用jQuery在Jquery 多个文本字段的加减法,jquery,addition,subtraction,jquery-calculation,Jquery,Addition,Subtraction,Jquery Calculation,我有一个表,在其中我试图使用jQuery在keydown或blur上添加和减去多个文本字段。虽然我可以成功地进行加法,但我得到的减法结果都是错误的 HTML: 我建议下一个解决方案: HTML: <input type="text" class="calc" data-action="add" /> <input type="text" class="calc" data-action="add" /> <input type="text" class="calc"
keydown
或blur
上添加和减去多个文本字段。虽然我可以成功地进行加法,但我得到的减法结果都是错误的
HTML:
我建议下一个解决方案: HTML:
<input type="text" class="calc" data-action="add" />
<input type="text" class="calc" data-action="add" />
<input type="text" class="calc" data-action="sub" />
<input type="text" class="calc" data-action="sub" />
<label id="total"></label>
我建议下一个解决方案: HTML:
<input type="text" class="calc" data-action="add" />
<input type="text" class="calc" data-action="add" />
<input type="text" class="calc" data-action="sub" />
<input type="text" class="calc" data-action="sub" />
<label id="total"></label>
更改:
val = parseFloat(sum) - parseFloat(val);
致:
在.sub
处理程序中,sum
是负数,因此需要将其添加到val
才能进行减法
更改:
val = parseFloat(sum) - parseFloat(val);
致:
在.sub
处理程序中,sum
是负数,因此需要将其添加到val
才能进行减法
根据您的小提琴,您可以简单地执行以下操作:
$(function() {
$(document).on('blur change keyup', '.add, .sub', function(e) {
var sum = 0;
$('.add, .sub').each(function(i) {
if (!isNaN(this.value) && this.value.length != 0) {
if ($(this).hasClass('add')) {
sum += parseFloat(this.value);
}
else {
sum -= parseFloat(this.value);
}
}
});
$('#total').text(sum.toFixed(2));
})
})
根据您的小提琴,您可以简单地执行以下操作:
$(function() {
$(document).on('blur change keyup', '.add, .sub', function(e) {
var sum = 0;
$('.add, .sub').each(function(i) {
if (!isNaN(this.value) && this.value.length != 0) {
if ($(this).hasClass('add')) {
sum += parseFloat(this.value);
}
else {
sum -= parseFloat(this.value);
}
}
});
$('#total').text(sum.toFixed(2));
})
})
这是怎么回事:
我已经组合了两个模糊函数
function parseOrZero(val){
return parseFloat(val) || 0;
}
$('.add, .sub').blur(function () {
var total = 0;
for(i =0, as = $(".add, .sub"), asl = as.size(); i < asl; i++){
if(i < 2){
total += parseOrZero(as.eq(i).val());
}else{
total -= parseOrZero(as.eq(i).val());
}
}
$('#total').text(total);
});
函数解析器零(val){
返回浮点值(val)| | 0;
}
$('.add,.sub').blur(函数(){
var合计=0;
对于(i=0,as=$(“.add.sub”),asl=as.size();i
这是怎么回事:
我已经组合了两个模糊函数
function parseOrZero(val){
return parseFloat(val) || 0;
}
$('.add, .sub').blur(function () {
var total = 0;
for(i =0, as = $(".add, .sub"), asl = as.size(); i < asl; i++){
if(i < 2){
total += parseOrZero(as.eq(i).val());
}else{
total -= parseOrZero(as.eq(i).val());
}
}
$('#total').text(total);
});
函数解析器零(val){
返回浮点值(val)| | 0;
}
$('.add,.sub').blur(函数(){
var合计=0;
对于(i=0,as=$(“.add.sub”),asl=as.size();i
最短版本的jquery,让您随心所欲……真是鼓舞人心
是的,这是所有代码…最短版本的jquery,可以实现您想要的功能…真的很鼓舞人心
<html>
<head>
<script language="javascript">
function Sum()
{
var num1,num2,res;
num1=document.getElementById("txtnum1").value;
num2=document.getElementById("txtnum2").value;
res=parseInt(num1)+parseInt(num2);
document.getElementById("txtres").value=res;
}
function Subtract()
{
var num1,num2,res;
num1=document.getElementById("txtnum1").value;
num2=document.getElementById("txtnum2").value;
res=num1-num2;
document.getElementById("txtres").value=res;
}
</script>
</head>
<body>
<table align="center">
<tr>
<td>Num1</td>
<td><input id="txtnum1" onChange="Sum()" /></td>
</tr>
<tr>
<td>Num2</td>
<td><input id="txtnum2" onChange="Sum()" /></td>
</tr>
<tr>
<td>Result</td>
<td><input id="txtres" /></td>
</tr>
</table>
</body>
<html>
是的,这都是代码…
<html>
<head>
<script language="javascript">
function Sum()
{
var num1,num2,res;
num1=document.getElementById("txtnum1").value;
num2=document.getElementById("txtnum2").value;
res=parseInt(num1)+parseInt(num2);
document.getElementById("txtres").value=res;
}
function Subtract()
{
var num1,num2,res;
num1=document.getElementById("txtnum1").value;
num2=document.getElementById("txtnum2").value;
res=num1-num2;
document.getElementById("txtres").value=res;
}
</script>
</head>
<body>
<table align="center">
<tr>
<td>Num1</td>
<td><input id="txtnum1" onChange="Sum()" /></td>
</tr>
<tr>
<td>Num2</td>
<td><input id="txtnum2" onChange="Sum()" /></td>
</tr>
<tr>
<td>Result</td>
<td><input id="txtres" /></td>
</tr>
</table>
</body>
<html>
函数和()
{
变量num1,num2,res;
num1=document.getElementById(“txtnum1”).value;
num2=document.getElementById(“txtnum2”).value;
res=parseInt(num1)+parseInt(num2);
document.getElementById(“txtres”).value=res;
}
函数减法()
{
变量num1,num2,res;
num1=document.getElementById(“txtnum1”).value;
num2=document.getElementById(“txtnum2”).value;
res=num1-num2;
document.getElementById(“txtres”).value=res;
}
Num1
Num2
结果
函数和()
{
变量num1,num2,res;
num1=document.getElementById(“txtnum1”).value;
num2=document.getElementById(“txtnum2”).value;
res=parseInt(num1)+parseInt(num2);
document.getElementById(“txtres”).value=res;
}
函数减法()
{
变量num1,num2,res;
num1=document.getElementById(“txtnum1”).value;
num2=document.getElementById(“txtnum2”).value;
res=num1-num2;
document.getElementById(“txtres”).value=res;
}
Num1
Num2
结果