首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >加减多个文本字段

加减多个文本字段
EN

Stack Overflow用户
提问于 2013-08-30 20:24:21
回答 6查看 12.8K关注 0票数 1

我有一个表,在该表中,我试图使用jQuery在keydownblur上添加和减去多个文本字段。虽然我可以成功地添加,但我得到的减法结果都是错误的。

HTML:

代码语言:javascript
复制
<input type="text" class="add" />
<input type="text" class="add" />
<input type="text" class="sub" />
<input type="text" class="sub" />
<label id="total"></label>

联署材料:

代码语言:javascript
复制
 $('.add').blur(function () {
     var sum = 0;
     $('.add').each(function () {
         if (!isNaN(this.value) && this.value.length != 0) {
             sum += parseFloat(this.value);
         }
     });

     $('#total').text(sum.toFixed(2));

 });

 $('.sub').blur(function () {
     var sum = 0;
     var val = $('#total').text();
     $('.sub').each(function () {
         if (!isNaN(this.value) && this.value.length != 0) {
             sum -= parseFloat(this.value);

         }
     });
     val = parseFloat(sum) - parseFloat(val);
     $('#total').text(val);

 });

小提琴

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-08-30 20:36:57

更改:

代码语言:javascript
复制
val =  parseFloat(sum) - parseFloat(val);

至:

代码语言:javascript
复制
val =  parseFloat(val) + parseFloat(sum);

.sub处理程序中,sum是负的,因此您需要将它添加到val中才能减去。

小提琴

票数 3
EN

Stack Overflow用户

发布于 2013-08-30 20:36:40

我建议下一个解决办法:

HTML:

代码语言:javascript
复制
<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>

JS

代码语言:javascript
复制
$(document.body).on('blur', '.calc', function() {
    var result = 0;
    $('.calc').each(function() {
        var $input = $(this),
            value = parseFloat($input.val());

        if (isNaN(value)) {
            return;
        }

        var action = $input.data('action') == 'add' ? 1 : -1;

        result += value * action;
    });

    $('#total').text(result.toFixed(2));
});

试试看

票数 3
EN

Stack Overflow用户

发布于 2013-08-30 20:41:13

根据您的小提琴,您可以简单地做以下工作:

代码语言:javascript
复制
$(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));
    })
})

示例

FuN vERsiON!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18540937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档