使用表单接受用户输入并执行计算&使用javascript显示它

时间:2013-08-21 20:33:29

标签: javascript forms

我正在尝试使用html表单来接受我的用户输入然后在javascript上进行计算,它只显示没有计算的对话框,可能是什么问题?我不知道该如何去做,这是我到目前为止所尝试的。

的Javascript

<script type="text/javascript">
function Air() {
    input = document.getElementById('Enter').value;
    TotalPurchasingAmountOrange = 0.87 * input;
    discountOrange = 0.13 * input;
    TotalPurchasingAmountMascom = 0.85 * input;
    discountMascom = 0.15 * input;
    TotalPurchasingAmountBMobile = 0.83 * input;
    discountMascom = 0.17 * input;
    alert("Orange airtime:\nAmount: " + TotalPurchasingAmountOrange + "\nDiscount: " + discountOrange);
    alert("Mascom airtime:\nAmount: " + TotalPurchasingAmountMascom + "\nDiscount: " + discountMascom + "\nBMobile airtime:\nAmount: " + TotalPurchasingAmountBMobile + "\nDiscount: " + discountBMobile);
}
</script>

表格

<ul>
    <li>
        <label>Units
            <input type="text" data-bind="value: units" />
        </label>
    </li>
</ul>
<div class="buttonArea">
    <input id="Enter" type="button" value="Enter" onclick="Air()" />
</div>

3 个答案:

答案 0 :(得分:1)

你的问题在这里:

input = document.getElementById('Enter').value;
...
<input id="Enter" type="button" value="Enter" onclick="Air()"/>

Enter的值为“Enter”,因此当您尝试将其乘以0.87时,我怀疑您要么出现控制台错误,要么javascript试图变得聪明并且数字超出价值并且完全错了。

这就是你想要的:

<input type="text" id="Enter">
<input type="button" value="Enter" onclick="Air()"/>

答案 1 :(得分:0)

input = document.getElementById('Enter').value;

首先,请在初始化变量之前使用“var”,除非“input”是全局变量。 其次,根据您的代码,输入值将为“Enter”。在那之后,你试图将它乘以一些数字。即使是JS也无法提供这种计算。

您需要使用

<input type="text" id="Enter" />

允许用户编写自己的值。

或者您可以通过提示功能使用对话框窗口。 它看起来像:

function Air (){
    while (isNaN(amount)) {
        var input = prompt("Please, enter needed amount. Notice, that it should be number");
        var amount = parseFloat(input);
    }

    var TotalPurchasingAmountOrange = 0.87 * amount;
    var discountOrange = 0.13 * amount;

    var TotalPurchasingAmountMascom = 0.85 * amount;
    var discountMascom = 0.15 * amount;

    var TotalPurchasingAmountBMobile = 0.83 * amount;
    var discountMascom = 0.17 * amount;

    alert("Orange airtime:\nAmount: " +TotalPurchasingAmountOrange+ "\nDiscount: " +discountOrange );

    alert("Mascom airtime:\nAmount: " +TotalPurchasingAmountMascom+ "\nDiscount: " +discountMascom+ "\nBMobile airtime:\nAmount: " +TotalPurchasingAmountBMobile+ "\nDiscount: " +discountBMobile  );
}

答案 2 :(得分:0)

您在Javascript中获得Enter的值。如果在分配变量后执行alert(input),则会注意到其值为Enter,即按钮上的文本。我猜你不是想做什么的!

添加到您的HTML中,例如:

<input id="number" type="textbox">

改变你的第一条Javasvript系列:

input = document.getElementById('number').value;

在文本框中输入一个值,您应该会注意到前两次alert来电中显示的实际数字!