2016-12-01 3 views
-2

JavaScriptを実行して、Webページに挿入された数値の合計が合計に基づいてアラートを返すようにしようとしています。なんらかの理由で、結果のアラートが返されません。ここでif/elseステートメントがアラートを返さないのはなぜですか?

は、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"/> 
+6

'CALC()'を呼び出すコードがありますか?それはアラートが表示される唯一の場所であり、コード内の何もその機能を呼び出すものはありません。 – csmckelvey

+2

なぜ 'calc'は' myfunction'を引数として取りますか? – ray

+1

'calc()'が呼び出された場合、 'textbox3'はその中で定義されません。 – forgivenson

答えて

-1

あなたがスコープ外に実行しています。

textbox3はmyfunction()のスコープ内で宣言されており、別の関数(calc())でそのテキストにアクセスしようとしています。

calc()でも宣言する必要があります。

+0

2番目のテキストブロックを完全に書き直す必要がありますか? –

0

calc()関数は決して呼び出していません。この作業を行う最も簡単な方法は次のとおりです。変更点は...

1)私はあなたの関数の名前を変更しました。機能の名前を付けた後、関数の名前をつけています。myFunctionを使わないでください!

2)calculateTotal()now が返答を返します。 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"/> 
+0

ありがとうございます!これはまさに私が必要としていたもので、今では私のコードは〜! –

関連する問題