Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 多个文本字段的加减法_Jquery_Addition_Subtraction_Jquery Calculation - Fatal编程技术网

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"

我有一个表,在其中我试图使用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" 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
结果