这是上一个成功主题的延续 jquery: percentage of two numbers
首先,我要感谢您对上一篇文章的及时支持。 现在我想让我的脚本更复杂一些。我想实现以下内容:如果我插入PRICE1和PRICE2以在THEM之间有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);
});
})
谢谢大家帮助我!!!
答案 0 :(得分:1)
有一个else
且没有匹配的if
。我不确定你想要达到的目标,但需要检查一些条件。
我将尝试编写您需要的内容。但是我要重命名你的变量,不仅因为allcaps很难输入,而且除非是常量或宏,否则不应该使用它们。
// 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(...
毫无意义,我不知道你为什么要这样做。