为什么我的if / else语句不会返回警报?

时间:2016-12-01 19:21:23

标签: javascript

我正在尝试以这样的方式运行JavaScript,即在网页上放入的数字总和将根据总和返回警报。出于某种原因,它不会返回结果'警报。

以下是JavaScript代码:

function myfunction() { 
    var first = document.getElementById("textbox1").value;
    var second = document.getElementById("textbox2").value; 
    var answer = parseFloat(first)+parseFloat(second);

    var textbox3 = document.getElementById('textbox3');
    textbox3.value=answer;
} 

function calc(myfunction) {
    if (textbox3.value >= 50) {
        alert ("Congratulations!! You won!");
    } else if (textbox3.value < 50) {
        alert ("Better luck next time...");
    }
}

我尝试以我构建和缩进的方式呈现它,所以希望这对我有任何想法的人有所帮助。

编辑:这是调用函数的html代码:

<input type="text" name="textbox1" id="textbox1" /> + <input type="text" name="textbox2" id="textbox2" /> 

<input type="submit" name="button" id="button1" onclick="myfunction()" value="=" />

<br/>

Your answer is:

<input type="text" name="textbox3" id="textbox3"/>

2 个答案:

答案 0 :(得分:0)

您永远不会调用calc()函数。使这项工作最简单的方法如下。变化是......

1)我已经重命名了你的函数 - 在他们做了之后养成命名函数的好习惯 - 不要使用myFunction!

2)calculateTotal()现在返回答案。在displayWinAlert()函数中,我们将此返回的结果存储在“total”变量中。

3)我将“if else”更改为“else” - 当我们已经测试了相反的情况时,没有必要测试它是否低于50。

4)您的按钮现在在单击时调用displayWinAlert()函数。

使用Javascript:

function calculateTotal() { 
    var first = document.getElementById("textbox1").value;
    var second = document.getElementById("textbox2").value; 
    var answer = parseFloat(first)+parseFloat(second);

    var textbox3 = document.getElementById('textbox3');
    textbox3.value=answer;
    return answer;
} 

function displayWinAlert() {
    var total = calculateTotal();
    if (total >= 50) {
        alert ("Congratulations!! You won!");
    } else {
        alert ("Better luck next time...");
    }
}

HTML:

<input type="text" name="textbox1" id="textbox1" /> + <input type="text" name="textbox2" id="textbox2" /> 

<input type="submit" name="button" id="button1" onclick="displayWinAlert()" value="=" />

<br/>

Your answer is:

<input type="text" name="textbox3" id="textbox3"/>

答案 1 :(得分:-1)

你的范围已经不在了。

textbox3在myfunction()的范围内声明,并且您尝试在另一个函数中访问它(calc());

你也需要在calc()上声明它。