javascript - javascript 中的货币转换器出现问题

标签 javascript html currency converters

我在使用这个 JavaScript 时遇到了问题。这是一个例子

 window.onload = initPage;

var euro;
var convert;

function initPage()
{
    document.getElementById("convertButton").onclick = calcAnswer();
    document.getElementById("conversionType").onchange = calcAnswer();
}

function calcAnswer()
{
    //alert(document.getElementById("conversionType").value);

    var value1 = document.getElementById("amount").value;
    var conversionType = document.getElementById("conversionType").value;
    //alert(conversionType);

    if(var value = document.getElementById("conversionType").value=="polish");
        document.getElementById("answer").value=(value1-32)/9*5;
    else
        document.getElementById("answer").value=value1*9/5+32;
}

这是 html

  <h1>Currency Converter</h1>


  <form name="convert">

Choose which currency you would like to convert to the Euro:
<select id="conversionType">
    <option value="polish">Polish Zloty</option>
    <option value="ukraine">Ukraine Hryvnia</option>
</select>
</br>
</br>

<hr>
      Amount:<input id="amount" type="text" />
<input id="convertButton" type="button" value="Convert->"/>
      To:
<input id="answer" type="text" name="answer" readonly="readonly"/>


</form>

我使用的是旧的温度转换器,并且没有更改该部件,但即使该部件也无法工作。

最佳答案

对于初学者来说,这两行是错误的:

document.getElementById("convertButton").onclick = calcAnswer();
document.getElementById("conversionType").onchange = calcAnswer();

将它们更改为:

document.getElementById("convertButton").onclick = calcAnswer;
document.getElementById("conversionType").onchange = calcAnswer;

您想要为 onclickonchange 分配函数引用,而不是实际调用该函数并分配返回值。

然后,修复 calcAnswer 中的 if 语句,如下所示:

function calcAnswer()
{
    var amount = document.getElementById("amount").value;
    var conversionType = document.getElementById("conversionType").value;
    var answerElement = document.getElementById("answer");
    //alert(conversionType);

    if(conversionType == "polish") {
        answerElement.value = (amount-32)/9*5;
    } else {
        answerElement.value = amount*9/5+32;
    }
}

关于javascript - javascript 中的货币转换器出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8540374/

相关文章:

javascript - Sequelize 不对子嵌套查询排序

html - 如何让表格在 flex div 中溢出?

database - 我可以在浏览器中使用数据库吗?

javascript - 如何使 JavaScript 函数中的文本居中?

mysql - 如何: Format a MySQL query result with currency signs using PHP

php - 转换输入为 "100K"、 "100M"等的金额

javascript - 为什么这个 JSX 表达式会产生奇怪的结果?

javascript - CKEditor - 小部件插件 : How to set focus into nested editable of widget?

c# - 将货币从 3 位数转换为 ISO 4217

javascript - 如何在 JavaScript 中重写私有(private)方法?