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")
}
});
});