2013-12-17 95 views
0

货币转换器最高的作品,但基于表的是死鸭。 我需要输入一个值,输入美元的金额并显示在相应的值字段中。货币转换器不转换

下面的代码:

<html> 
    <head> 
     <title>Convert US Dollars to Euros 2</title> 
    </head> 
<body> 
<form> 
<table border="1"> 
<tbody> 
    <tr> 
    <th colspan="3">Monetary Exchange Rates 
    </th> 
    </tr> 
    <tr> 
    <th>Currency 
    </th> 
    <th>Rate 
    </th> 
    <th>Value 
    </th> 
    </tr> 
    <tr> 

    <td>British Pound 
    </td> 
    <td><input type="text" style="text-align: right;" &#010;name="bp" value="0.62905" size="12" disabled="true" /> 
    </td> 
    <td><input type="text" id="BP" value=""></td> 
    </tr> 
    <tr> 
    <td>Canadian Dollar 
    </td> 
    <td><input type="text" style="text-align: right;" &#010;name="cd" value="0.98928" size="12" disabled="true" /> 
    </td> 
    <td><input type="text" id="CD" value=""></td> 
    </tr> 
    <tr> 
    <td>Euro 
    </td> 
    <td><input type="text" style="text-align: right;" &#010;name="eu" value="0.79759" size="12" disabled="true" /> 
    </td> 
    <td><input type="text" id="EU" value=""></td> 
    </tr> 
    <tr> 
    <td>Japanese Yen 
    </td> 
    <td><input type="text" style="text-align: right;" &#010;name="jy" value="78.5461" size="12" disabled="true" /> 
    </td> 
    <td><input type="text" id="JY" value=""></td> 
    </tr> 
    <tr> 
    <td>Mexican Peso 
    </td> 
    <td><input type="text" style="text-align: right;" &#010;name="mp" value="13.0729" size="12" disabled="true" /> 
    </td> 
    <td><input type="text" id="MP" value="">  <!--&#010;td--> 
    </td> 
    </tr> 
    <tr> 
    <td colspan="2"><b>Enter Amount of U.S. Dollars</b> 
    </td> 
    <td> 
    <input type="text" id="amount" name="amount" size="10" value="1" /> 
    </td> 
    </tr></tbody> 
</table> <br /> 
<input type="button" value="Calculate" onclick="calculate();"> 
<input type="reset" value="Reset" /> 
</form> 
    <script type="text/javascript"> 
     var BP = '0.62905'; 
     var CD = '0.98928'; 
     var EU = '0.79759'; 
     var JY = '78.5431'; 
     var MP = '13.0729'; 


     function calculate() { 
      var amount = parseFloat(document.getElementById("amount").value); 
//   var e = document.getElementById("select"); 
      var select = e.options[e.selectedIndex].value; 
      var select = document.getElementById("select"); 
      var result = document.getElementById("result"); 

      if(select.options[select.selectedIndex].value=="BP") 

      if (select.value === "USD to EUR") { 
       result.value = (amount * 0.7003).toFixed(2); 
      } 
      if (select.value === "EUR to USD") { 
       result.value = (amount * 1.4283).toFixed(2); 
      } 
      if (select.value === "0.62905") { 
       result.value = (amount * 0.62905).toFixed(2); 
      } 
     } 
    </script> 
    </body> 
</html> 

任何帮助将不胜感激。

+1

您在顶部和底部都使用了id'amount'。两个按钮都触发相同的功能。因此,他们都从顶部输入中读取数据,忽略底部数据。 –

+0

http://jsfiddle.net/kamull61/dsQk4/ – kamull61

+0

toFixed做四舍五入,虽然它不如Math.round可靠。尽管如此,在我的例子中,我只看到一个看起来失败的地方 - 而这实际上是一个数据问题。日元的转换率在你的脚本和你的html之间是不同的。然而,如果你想使用它,你会做类似于:document.getElementById(“JY”)。value =(Math.round(amount * JY * 100)/ 100).toFixed(2); –

回答

0

删除了select后,您正在查找的脚本是:

<script type="text/javascript"> 
var BP = '0.62905'; 
var CD = '0.98928'; 
var EU = '0.79759'; 
var JY = '78.5431'; 
var MP = '13.0729'; 


function calculate() { 
    var amount = parseFloat(document.getElementById("amount").value); 
    document.getElementById("BP").value = (amount * BP).toFixed(2); 
    document.getElementById("CD").value = (amount * CD).toFixed(2); 
    document.getElementById("EU").value = (amount * EU).toFixed(2); 
    document.getElementById("JY").value = (amount * JY).toFixed(2); 
    document.getElementById("MP").value = (amount * MP).toFixed(2); 

} 
</script> 

我们不希望列出那些明确的东西,如任何大规模的东西;我们将创建一个列表并对其进行迭代。但是我认为用这种方式写出来可以更好地回答你当前的问题,而不会为你混淆水域。

+0

谁是男人。 S McCrohan是男人。非常感谢你。 – kamull61

0

试试这个代码

if(select.options[select.selectedIndex].value=="your value") 
2

ID的应该是唯一的,你不能用同一个ID多次,你的选择值不起作用,变化:

var select = document.getElementById("select"); 

var e = document.getElementById("select"); 
var select = e.options[e.selectedIndex].value;