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 –