2012-11-29 50 views
0

这是一次成功的话题 jquery: percentage of two numbers的jQuery:两个数字的百分比(第2部分)

首先我要感谢您的及时支持previuous后的延续。 现在我想让我的脚本更复杂一点。我想完成以下操作:如果我插入PRICE1和PRICE2以使它们之间具有RATE,则可以使用其他值更改RATE,并根据RATE值将PRICE2更改为corespondent值。

我的计算脚本几乎是正确的,但是我对JQuery的了解很少,所以我会问你我在哪里做错了什么。 感谢您的支持!

<script src="libs/jquery.min.js"></script> 

<script type="text/javascript"> 
$(function() { 
    $("#PRICE1, #PRICE2").change(function() { 
    var result = parseFloat(parseFloat($("#PRICE1").val(), 10) - parseFloat($("#PRICE1").val(), 10))/ parseFloat($("#PRICE2").val(), 10) * 100; 
    $('#RATE').val(result||''); 
    }) 
    else { 
    $("#PRICE1, #RATE").change(function() { 
    var result = parseFloat(parseFloat($("#PRICE1").val(), 10) * parseFloat($("#RATE").val(), 10))/ 100 + parseFloat($("#PRICE1").val(), 10); 
    $('#PRICE2').val(result||''); 
    })} 
}); 
</script> 

编辑:

守则概正常工作这可能会帮助别人:

$(document).ready(function(){ 
$("#priceOne, #priceTwo").change(function() { 
    var priceOne = parseFloat($("#priceOne").val()); 
    var priceTwo = parseFloat($("#priceTwo").val()); 
    $('#Rate').val((priceTwo - priceOne)/priceOne * 100); // Set the rate 
}); 
// If price one or the rate is changed, adjust price two. 
$("#priceOne, #RATE").change(function() { 
    var priceOne = parseFloat($("#priceOne").val()); 
    var rate = parseFloat($("#Rate").val()); 
    $('#priceTwo').val((priceOne * rate)/ 100 + priceOne); 
}); 
}) 

谢谢大家谁帮助我!

+1

什么是错误? –

+1

“else”语句没有匹配的“if”。 – Aesthete

回答

1

有一个else和没有匹配if。我不确定你想要达到什么,但有些情况需要检查。

我将尝试编码看起来你需要什么。但是我要重新命名你的变量,不仅因为所有的头文件都很难输入,除非它是一个常量或宏,否则不应该使用。

// In ready() callback 
// @NOTE - This does NO error checking for division by 0 or other NaN operations. 

// If price two is changed, adjust the rate. 
$("#priceTwo").change(function() { 
    var priceOne = parseFloat($("#priceOne").val()); 
    var priceTwo = parseFloat($(this).val()); 
    $("#rate").val(priceTwo/priceOne); // Set the rate 
}); 
// If price one or the rate is changed, adjust price two. 
$("#rate #priceOne").change(function() { 
    var priceOne = parseFloat($("#priceOne").val()); 
    var rate = parseFloat($("#rate").val()); 
    $("#priceTwo").val(priceOne * rate); 
}); 

有关于你的代码几件事情需要注意:

  • parseFloat不采取基数说法,10你通过它被忽略。
  • parseFloat(parseFloat(...是毫无意义的,我不确定你为什么这样做。
  • 请勿使用jQuery在同一范围内多次选择相同的元素。保存值并重新使用它 - 为自己节省一些周期。
  • 正如我所提到的,不要将变量命名为所有的首都,除非它们是某种常数,这是永远不应该改变的,所以拥有干净的风格习惯是件好事。
+0

第一部分和第二部分非常相似:第一部分计算价格1和价格2之间的利率...但第二部分如果我更改了价格值,则价格2被作为利息率PRICE2 –

+0

@SergiuCostas - 好吧,我做的一些变化,希望他们能解决你的问题。 – Aesthete

+0

感谢您的方式...它似乎是逻辑上正确的。但仍然脚本不产生结果:( –