0

私は次のようなものを作りたい:

1. 1296
2. 4624

Square root both numbers and add the result! 
Answer: ________
[Check button]

somewhere.html答えが正しい場合は、次の

スクリプトを作成しました。

<html>
<head>
    <script language="javascript">
        window.onload=calc; 

        function calc() {
            var num1, num2, sqNum1, sqNum2, randomNum, sum, ans;
            num1=Math.floor(Math.random()*90)+10;
            num2=Math.floor(Math.random()*90)+10;
            sqNum1=num1*num1;
            sqNum2=num2*num2;
            sum=num1+num2;
            document.write("1. " + sqNum1 + "<br />");
            document.write("2. " + sqNum2 + "<br />");
            document.write("<br />");
        }

        function checkAns(form) {
            if (form.ans.value==sum) {
                location="somewhere.html";
            } else {
                alert ("Wrong answer!");
            }
        }
    </script>
</head>

<body>
    Square root both numbers and add the result! <br />
    <form name='question'>
        Answer: <input name='ans' type='password'> <br />
        <input type='button' value='Check' onClick='checkAns(this.form)'>
    </form>
</body>
</html>

何を試しても、この部分は表示されません。

Square root both numbers and add the result! 
Answer: ________
[Check button]

このスクリプトの何が問題になっていますか?

4

2 に答える 2

5

load関数が呼び出されるまでに、ドキュメントは閉じ状態になります。

write閉じた状態でドキュメントにアクセスすることはできないため、呼び出すwriteと呼び出さopenれます。

呼び出すopenと、既存のドキュメントが消去されます。

新しいコンテンツが新しいドキュメントに書き込まれます。

DOM 操作(createElementおよびその仲間) を使用appendChildして、既存のドキュメントを編集します。

于 2013-09-23T14:02:47.380 に答える
-1

次のようなものが必要です。

<html>
<head>
    <script language="javascript">
        function calc() {
            var num1, num2, sqNum1, sqNum2, randomNum, sum, ans;
            num1=Math.floor(Math.random()*90)+10;
            num2=Math.floor(Math.random()*90)+10;
            sqNum1=num1*num1;
            sqNum2=num2*num2;
            sum=num1+num2;
            document.getElementById("sum").value = sum;

            var question = document.getElementById("question");
            var numbers = document.getElementById("numbers");
            var br = document.createElement('br');
            var txt = document.createTextNode("1. " + sqNum1);
            numbers.appendChild(txt);
            numbers.appendChild(br);
            var txt = document.createTextNode("2. " + sqNum2);
            numbers.appendChild(txt);
            txt.appendChild(question);
        }

        function checkAns(form) {

            if (document.getElementById("ans").value == document.getElementById("sum").value) {
                var newWin = open('somewhere.html','windowName','height=300,width=300');
            } else {
                alert ("Wrong answer!");
            }
        }
    </script>
</head>

<body onload="calc();">
    <form name='question'>
        <div id="numbers">
        </div>
        <br/>
        Square root both numbers and add the result! <br />
        <div id="question">
            Answer: <input id='ans' name='ans' type='password'> <br />
            <input type='button' value='Check' onClick='checkAns(this.form)'>
        </div>
        <input id='sum' type='hidden' value=''/>
    </form>
</body>
</html>

これは最善の答えではありません。これは、開発をフォローするために使用できる 1 つの方法です。

于 2013-09-23T14:22:31.217 に答える