2013-12-17 56 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;