货币转换器不转换

时间:2013-12-17 04:58:30

标签: javascript

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

以下是代码:

<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>

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:2)

ID&#39; s应该是唯一的,您不能多次使用相同的ID,并且您的选择值不起作用,请更改:

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

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

答案 1 :(得分:0)

试试此代码

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

答案 2 :(得分:0)

删除了选择后,您正在寻找的脚本是:

<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>

我们不希望明确列出那些大规模的东西;我们建立一个列表并迭代它。但我认为用这种方式写出来可以更好地回答你的问题,而不会为你弄脏水域。