2017-05-03 9 views
2

JavaScriptの2つの条件を確認するのに問題があります。私が数字を入れると、最初のifの声明が働くでしょう。ただし、else ifステートメントは、その条件に従ったものは表示しません。助けていただければ幸いです。他の場合2つの異なる条件の数値を比較するためのステートメント

<html> 
<head> 

<script> 
function return() { 
    var num1 = document.getElementById("num1"); 
    var num2 = document.getElementById("num2"); 
    var x = num1.value; 
    var y = num2.value 
    if (isNaN(x)) { 
    alert("Please only enter numbers"); 
    return false; 
    } 
    if (isNaN(y)) { 
    alert("Please only enter numbers"); 
    return false; 
    } 
    var calculation = (x + y)/(x * y); 
    var result = document.getElementById("answer"); 
    if (calculation > 1) { 
    result.value = "Your number is more than 1"; 
    } else { 
    if (calculation <= 0.5) { 
     result.value = "Your number is 1 or less"; 
    } 
    } 
} 
    </script> 
    </head> 

    <body> 
    1: <input type="text" id="num1"/> 
    2: <input type="text" id="num2"/> 
    <input type="button" value="Calculate" onclick= "return()"/> 
    <input type="text" id="answer"/> 
</body> 
</html> 
+0

結果は '0.5'と '1'の間にある場合はどう?条件は満たされず、何も表示されません。 – Tushar

+0

'var計算=(+ x + + y)/(x * y);' – Rayon

+1

'return'を関数名にすることはできません。 – Rayon

答えて

3

あなたは、関数名、変数名やラベルとして予約語を使用することはできません。

Unary plusを使用することができ、Numberとして入力値をキャスト。従ってタイプString


InputElement.value戻り値の値は 23ある場合、計算が ("2" + "3" ==> "23")なり、値が追加されていない、連結されます!

また、処理されていない欠落状態があることに注意してください。また、else条件も必要です。

function calculate() { 
 
    var num1 = document.getElementById("num1"); 
 
    var num2 = document.getElementById("num2"); 
 
    var x = num1.value; 
 
    var y = num2.value 
 
    if (isNaN(x)) { 
 
    alert("Please only enter numbers"); 
 
    return false; 
 
    } 
 
    if (isNaN(y)) { 
 
    alert("Please only enter numbers"); 
 
    return false; 
 
    } 
 
    var calculation = (+x + +y)/(x * y); 
 
    var result = document.getElementById("answer"); 
 
    if (calculation > 1) { 
 
    result.value = "Your number is more than 1"; 
 
    } else { 
 
    if (calculation <= 0.50) { 
 
     result.value = "Your number is 1 or less"; 
 
    } else { 
 
     result.value = "Unhandled condition!"; 
 
    } 
 
    } 
 
}
1: <input type="text" id="num1" /> 2: <input type="text" id="num2" /> 
 
<input type="button" value="Calculate" onclick="calculate()" /> 
 
<input type="text" id="answer" />

+0

そして' else if'を2箇所で使用します。 – Tushar

+1

第2の「isNaN」。必須ではありませんが、 'if'の内部から返されます。 – Tushar

+0

単項プラス(+ x + + y)の目的は正確には何ですか?私は単項プラスを削除しようとしましたが、それは機能しませんでした。 – archeryninja

0

リターンは、functionnameとと声明、ドントの使用これです。

<!doctype html> 
    <html lang="en"> 
    <head> 
     <meta charset="UTF-8"> 
     <title>Document</title> 
    </head> 
    <body> 
     1: <input type="text" id="num1"/> 
     2: <input type="text" id="num2"/> 
     <input type="button" value="Calculate" onclick= "returnq()"/> 
     <input type="text" id="answer"/> 
    <script> 

    function returnq(){ 
     var num1 = document.getElementById("num1"); 
     var num2 = document.getElementById("num2"); 
     var x = num1.value; 
     var y = num2.value 
     if (isNaN(x)){ 
     alert("Please only enter numbers"); 
     return false; 
     } 
     if (isNaN(y)){ 
     alert("Please only enter numbers"); 
     return false; 
     } 
     var calculation = (x+y)/(x*y); 
     var result = document.getElementById("answer"); 
     if (calculation > 1) { 
     result.value = "Your number is more than 1"; 
     } 
     else { 
     if (calculation <= 0.50) { 
     result.value = "Your number is 1 or less"; 
     } 
     } 
    } 


    </script> 
    </body> 
    </html> 

はokです...同時に

申し訳ありません2つの答え

+0

これは私のためには機能しませんでした。 1より小さい数の計算を押すと、何も戻されません。 – archeryninja

0

else文では、このようなif (calculation <= 0.50)を削除間違った試みである:

else { 
    result.value = "Your number is 1 or less";  
    } 
+0

私はこの方法を試しましたが、ユーザーが数字を入力しなくても "Your number is 1 or less"という結果を返すでしょう。 – archeryninja

0

問題はあなたということです機能が終了するように強制します。二度目のブロック実行をブロックすることは決してありません。また、returnはJavaScriptで予約されているキーワードであり、関数名であることは推奨されていません。 Link to jsbin。ここで

が働くだろういくつかのコードです:

1:<input type="text" id="num1" /> <br /> 
    2:<input type="text" id="num2" /> <br /> 
    <input type="button" value="Calculate" onclick="sumUpper()" /> 
    <input type="text" id="answer" /> 

function sumUpper() { 
    var num1 = document.getElementById("num1"); 
    var num2 = document.getElementById("num2"); 
    var x = parseFloat(num1.value); 
    var y = parseFloat(num2.value); 
    var xError = false; 
    var yError = false; 

    if (isNaN(x)) { 
    console.log("Please only enter numbers x"); 
    xError = true; 
    } 
    if (isNaN(y)) { 
    console.log("Please only enter numbers y"); 
    var yError = true; 
    } 
    console.log(xError, yError); 
    var calculation = (x + y)/(x * y); 
    var result = document.getElementById("answer"); 
    if (calculation > 1) { 
    result.value = "Your number is more than 1"; 
    } else { 
    if (calculation <= 0.50) { 
     result.value = "Your number is 1 or less"; 
    } 
    } 
} 
+0

これは私には役に立たなかった。どんな数を入れても、else if文の結果が得られました。「あなたの番号は1つ以下です。 – archeryninja

0

私は数字は、あなたが他を使用する必要がある場合は1と1と0.5の両方を示す、切り上げされていると思い、制限するでしょう数学の機能を試してみてください見積もり

0

機能名returnを使用することはできません。 returnはjavascriptキーワードです。

このようなことを試してください。

function myFunction(){ 
 
\t var num1 = document.getElementById("num1"); 
 
\t \t var num2 = document.getElementById("num2"); 
 
\t \t var x = num1.value; 
 
\t \t var y = num2.value; 
 
\t \t 
 
\t \t if (isNaN(x)){ 
 
\t \t \t alert("Please only enter numbers"); 
 
\t \t \t return false; 
 
\t \t } 
 
\t \t if (isNaN(y)){ 
 
\t \t \t alert("Please only enter numbers"); 
 
\t \t \t return false; 
 
\t \t } 
 
\t \t var calculation = (x+y)/(x*y); 
 
\t \t var result = document.getElementById("answer"); 
 
\t \t if (calculation > 1) { 
 
\t \t \t result.value = "Your number is more than 1"; 
 
\t \t } else { 
 
\t \t \t if (calculation <= 0.50) { 
 
\t \t  \t result.value = "Your number is 1 or less"; 
 
\t \t \t } 
 
\t \t } 
 
\t \t }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
1: <input type="text" id="num1"/> 
 
2: <input type="text" id="num2"/> 
 
<input type="button" value="Calculate" onclick= "myFunction()"/> 
 
<input type="text" id="answer"/>

関連する問題