2012-11-29 45 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

感謝您的方式...它似乎是邏輯上正確的。但仍然腳本不產生結果:( –