2

這是一個簡單的,我是新來的JavaScript,但我還沒有發現任何現有的答案,可以幫助這一點:的Javascript單位轉換器

我開始用一個簡單的計算器,將轉換一個單元, Cent(音符頻率差異的音樂單位)到小數點。

<html> 

    <head> 
     <script language="JavaScript"> 
      function tun(form) { 
       var i = parseFloat(form.Cents.value, 10); 
       var o = 0; 
       p = i/3986.313714 
       o = Math.pow(10, p) 

       form.Decimal.value = o; 
      } 
     </script> 
    </head> 

    <body> 
     <FORM>Cents: 
      <INPUT NAME="Cents" VALUE="0" MAXLENGTH="15" SIZE=15> 
      <p>Click to Convert 
       <INPUT NAME="calc" VALUE="Calculate" TYPE=BUTTON onClick=tun(this.form)> 
       <p>Decimal: 
        <INPUT NAME="Decimal" SIZE=15> 
     </FORM> 
    </body> 

</html> 

現在我想改變這一個轉換器,用於多種類型的單位相互轉化,使用十進制作爲中間人。我想從下拉菜單中選擇「輸入單位」和「輸出單位」。

這裏就是我至今:

<html> 

    <head> 
     <script language="JavaScript"> 
      function tun(form) { 
       var i = parseFloat(form.Cents.value, 10); 
       var o = 0; 
       p = i/3986.313714 
       o = Math.pow(10, p) 
       form.Decimal.value = o; 
      } 
     </script> 
     <script> 
      function selectedunit() { 
       var mylist = document.getElementById("InputList"); 
       document.getElementById("units").value = InputList.options[mylist.selectedIndex].text; 
      } 
     </script> 
    </head> 

    <body> 
     <form>Select units to convert from: 
      <select id="InputList" onchange="selectedunit()"> 
       <option></option> 
       <option>Cents</option> 
       <option>Savarts</option> 
       <option>Jots</option> 
       <option>Merides</option> 
      </select> 
      <p>Selected Units: 
       <input type="text" id="units" </p> 
       <br>Cents: 
       <INPUT NAME="Cents" VALUE="0" MAXLENGTH="15" SIZE=15> 
       <p>Click to Convert 
        <INPUT NAME="calc" VALUE="Calculate" TYPE=BUTTON onClick=tun(this.form)> 
        <p>Decimal: 
         <INPUT NAME="Decimal" SIZE=15> 
     </FORM> 
    </body> 

</html> 

所以我希望能夠選擇任何輸入單元和任何輸出單元,然後輸入一個值,並計算了 - 有點像貨幣轉換器

任何幫助?

吉姆

回答

0

嘗試做兩個不同的JavaScript函數

  1. AnyUnitToDecimalConverter()函數
  2. DecimalToAnyUnitConverter()函數

現在假設你需要從X單元轉換爲Y單位:調用AnyUnitToDecimalConverter(valueX),這會給你一個十進制答案,說AnsDecimal,現在調用DecimalToAnyUnitConverter(A nsDecimal);

+0

謝謝,這是一個更好的方式來看待它。但我甚至不知道如何讓下拉選擇對任何東西都有影響。我怎樣才能讓這兩個人互動? –

+0

請參閱http://www.w3schools.com/jsref/event_onchange.asp –

+0

請接受答案。如果它解決了你的問題。請參閱http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –