Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.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
Javascript jQuery-简单地将两个值除_Javascript_Jquery - Fatal编程技术网

Javascript jQuery-简单地将两个值除

Javascript jQuery-简单地将两个值除,javascript,jquery,Javascript,Jquery,我试图从我的输入字段中获取不同的值,将它们分开,并显示如下结果: <input type="text" class="ad-title calculate form-control" name="budget" id="budget" value="" placeholder="Enter a daily budget in USD"> <input type="text" class="form-control calculate" id="ppc" name="ppc"

我试图从我的输入字段中获取不同的值,将它们分开,并显示如下结果:

<input type="text" class="ad-title calculate form-control" name="budget" id="budget" value="" placeholder="Enter a daily budget in USD">

<input type="text" class="form-control calculate" id="ppc" name="ppc" value="" placeholder="">
然而,在我的
#sum
div中,我看到的是:
NaN

我做错了什么?

更改此行:

var ppc = parseFloat($("#ppc").val());


使用将值转换为数字,而不是使用
parseFloat

$(文档).ready(函数(){
$(“.calculate”).bind(“键控更改”,函数(e){
var budget=+$(“#budget”).val();
var ppc=+$(“#ppc”).val();
如果(!budget | | |!ppc)返回false;//等待两个值都设置好
var值=ppc/预算;
$(“#总和”)。文本(值);
});
});

您可以这样做:

$(document).ready(function() {    
    $(".calculate").bind("keyup change", function(e) {
        var budget = parseFloat($("#budget").val()) || 0;
        var ppc = parseFloat($("#ppc").val()) || 0;

        var value = ppc / budget;

        if (!isNaN(value) && value !== Infinity) {
            $("#sum").text(value);
        }
    });
});
您可能需要修改它以满足您的需要。例如,我们将得到
NaN
或不是一个数字,当除以零时,处理它。可能您永远不想显示0,所以可能需要处理该问题,或者将预算设置为默认值
1
。这取决于你希望它如何工作

jsIDLE:

您不需要绑定“change”事件,这应该可以

$(document).ready(function() {    
    $(".calculate").bind("keyup", function(e) {
        var budget = parseFloat($("#budget").val()) || 0;
        var ppc = parseFloat($("#ppc").val()) || 0;

        var value = (ppc / budget);
       // alert(value);
        if (!isNaN(value) && value != Infinity) {
            $("#sum").text(value);
        }
        else{
            $("#sum").text("0")
        }
    });
});

我知道是钱,你是在输入中输入美元符号吗?@9Deuce否,只有数字。货币值的小数点与你的langauge设置匹配吗?@cloudworks不幸的是,它不会改变任何东西。嘿,你真的需要键盘吗?关键事件的表演很有趣!您需要检查该值是否未定义或为空。通过放置| |这意味着“如果为空,则设置为0”,实际上,这是一个逻辑or,这意味着如果左侧的值在逻辑上为false,则它将与右侧的值一起使用。它可能有也可能没有所需的行为,但它将处理空字符串、未定义和NaN。感谢您的解释,这给了我“无穷大”的结果(无论我尝试什么值),上面的代码片段在Chrome中对我有效。你用的是什么浏览器,@oliverbj?我想当我得到无穷大时,是因为一个被零除的结果。虽然我现在输入的是除零以外的其他值,但它在#和中没有显示任何内容。我可以看到我的原始代码在第二个之前没有更新。计算输入被填写(让我想到它可能不会对第一个进行任何更改。计算输入这也给了我无穷大的空间。似乎当我编辑我的第一个。计算字段(预算字段)时,它不接受/读取该值。为什么,我不知道。我以为.bind()函数会处理这个问题。
$(document).ready(function() {    
    $(".calculate").bind("keyup change", function(e) {
        var budget = parseFloat($("#budget").val()) || 0;
        var ppc = parseFloat($("#ppc").val()) || 0;

        var value = ppc / budget;

        if (!isNaN(value) && value !== Infinity) {
            $("#sum").text(value);
        }
    });
});
$(document).ready(function() {    
    $(".calculate").bind("keyup", function(e) {
        var budget = parseFloat($("#budget").val()) || 0;
        var ppc = parseFloat($("#ppc").val()) || 0;

        var value = (ppc / budget);
       // alert(value);
        if (!isNaN(value) && value != Infinity) {
            $("#sum").text(value);
        }
        else{
            $("#sum").text("0")
        }
    });
});