0

ランダムに生成された数値を、ユーザーが (HTML のフォームを介して) 入力した数値と比較しようとしています。JavaScript 関数は、ユーザーがフォームに数値を入力するのを待つのではなく、ページが読み込まれるとすぐに実行されます。また、フォーム入力は何もしていないようです。

ここに私のHTMLがあります:

<!DOCTYPE html>
<html>
<head>
<title>Hot Or Cold</title>
<script type ="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
<script src="app.js" type="text/javascript"></script>
</head>
<body>
<div id="gameBox">
<p>Enter a number between 1 and 100</p>
<input type="text" name="userinput" id="userinput" maxlength="3" autocomplete="off"/>
<input type ="submit" name="submit" id="submit" class="button"/>
</div>
</form>
</body>
</html>

そして私のJavaScriptコード:

var computer = Math.floor(Math.random()*100);

var user = document.getElementById("#userinput");

function game(user, computer){
    if (user == computer) {
        alert("You picked the correct number!");
    }
    else if (user > computer) {
        alert("Too high.");
    }
    else if (user < computer) {
        alert("Too low.");
    }
}

game();
4

3 に答える 3

0

送信ボタンが何もしないため、期待どおりに機能していません。実際、ページの読み込み時に関数を呼び出しています。JavaScript の最後の行である への呼び出しを削除します。

game();

送信ボタンをこれに変更します

<input type=button onclick=game(); class=submit value=Submit>

クロージングを外す

</form>

開始フォームがないため、タグは必要ありませんが、必要ありません。

また、入力番号を取得する

var user = parseFloat(document.getElementById("userinput").value);

js は jquery のように ID の前にハッシュを使用しないため、フォームの値は解析されるまですべて文字列です。

于 2013-11-10T17:07:15.210 に答える
0

私はコード全体を書いています。

<!DOCTYPE html>
<html>
<head>
<body>
<h1> Game </h1>
<input type="number" id="id1">
<button type="button"
onclick=" game()">
Click me.</button>

<script>
var computer = Math.round(Math.random()*100);
console.log(computer);
var user=document.getElementById('id1').value;
function game(){
if(user == computer)
{
alert("yay! Good Work");
}
else{
alert("Sorry Not Matched");
}
}
</script>
</body>
</head>
</html>
于 2016-09-06T14:53:53.647 に答える