javascript从输入文本中减去并显示为div

javascript从输入文本中减去并显示为div,javascript,Javascript,这是我的示例代码 我的问题是,当我试图清空输入文本时,输出不正确…我不知道该怎么办请帮助 $("#xx").keyup(function(){ var res = $(this).val(); $('.type').text(res); res = parseInt(res); var dd = $('.hid').val(); dd = parseInt(dd); var total; //add // total =

这是我的示例代码

我的问题是,当我试图清空输入文本时,输出不正确…我不知道该怎么办请帮助

$("#xx").keyup(function(){
    var res = $(this).val();
    $('.type').text(res);
    res = parseInt(res);

    var dd = $('.hid').val();

    dd = parseInt(dd);

    var total;

    //add
    // total = res+dd;

    // if(isNaN(total)){
    //  $('.dd').text('100');
    // } else {
    //  $('.dd').text(total);
    // }

    //subtract
    total = dd - res;
    if(isNaN(total)){
        $('.hid').val();            
    } else {
        if(!$(this).val() || $(this).val() === ""){
            $('.hid').val();
        } else {
            $('.dd').text(total);
        }
    }
});

试试这个例子,我已经在html中做了一些更改:

$(function(){
    $("#xx").on('input', function(e){ //A
        this.value = this.value.replace(/[^0-9]/g, ''); //B
        var b = parseInt(this.value) || 0;
        var a = parseInt($("#hid").val()) || 0;
        $("#type").text(b);
        $("#dd").text(a - b);
    });
})
  • 答:事件将在按键时捕获,也可用于复制粘贴
  • B:从文本框中删除非数字字符

这里是您代码的解决方案。添加
res=isNaN(res)?0:res执行减法之前


这里是小提琴链接

输出“不正确”是什么意思?你能告诉我们你期望的是什么吗?实际产量是多少?以及您希望代码执行的操作,以及您可能遇到的任何错误?提问前请参阅常见问题解答。您的div元素中的值是
2000
,但实际上从隐藏输入中减去的值是
20000
。我相信您希望有人阅读并解决您的问题,但这不符合本网站的精神。了解您的问题,并寻求明确的帮助,是问答的一个重要部分。抱歉,我刚刚更新了我的JSFIDLE代码……每次我输入答案都没问题,我的问题是当我删除输入时,答案出错了,但仍然没有告诉我们答案应该是什么be@intheb0x,很高兴帮助您:)