1

送信ボタンをクリックしたときに乱数を取得する必要があるコードがあります。乱数は、同じページの別のテキスト ボックスに表示する必要があります。

これは私のコードです:

<html>
<head>
<script type="text/javascript">
function randomnumber(num1, num2)
{
    num1 = parseInt(num1);
    num2 = parseInt(num2);
    if(num1 >= num2)
    {
        alert("Number 2 should be greater than Number 1");
    }
    else
    {
        var generator = Math.random()*(num2-num1);
        generator = Math.round(num1+generator);

        document.test.result.value = generator;
        document.getElementById("p1").innerHTML=generator;
    }
}
</script>
</head>
<body>
    <form name="test" onsubmit = "return randomnumber(num1,num2)" >
        <table>
            <tr>
                <td>
                    <input type="text" name="num1" size ="35" maxlength= "25">
                </td>
                <td>
                    <input type="text" name="num2" size ="35" maxlength= "25">
                </td>
                <td>
                    <input type="text" name="p1" value = "" size ="35" maxlength= "25">
                </td>
                <td>
                    <input type="submit" name="submit" value"generate">
                </td>
            </tr>
        </table>
    </form>
</body>
</html>

乱数は、スクリプト内の変数「generator」で生成されます。このテキストフィールドの値を取得する必要があります。

<td>
    <input type="text" name="p1" value = "" size ="35" maxlength= "25">
</td>
4

5 に答える 5

1

あなたが欲しいものは:

var generator = Math.random()*(num2-num1);
generator = Math.round(num1+generator);

// document.test.result.value = generator; // Not sure what this line is for (don't see a test.result element.
document.getElementById("p1").value=generator;

.valueの代わりに注意してください.innerHTML

于 2012-10-10T07:36:31.633 に答える
1

このモードで入力テキストを変更するには、HTMLを使用する方が適切です。

<input type="text" name="p1" id="p1" value = "" size ="35" maxlength= "25">

そして、このjavascriptコードを使用して値を変更します。

document.getElementById("p1").value=generator;

IDは一意であり、要素をより適切に選択できるため

于 2012-10-10T07:37:14.393 に答える
1

これはそれを行う必要があります

document.getElementsByName('p1')[0].value = generator

問題は、「p1」がテキストボックスのIDではなく、名前であるということです。上記のコードは、「p1」という名前の1つの要素の場合にのみ機能します。

以下は、テキストボックスのIDとして「p1」を使用する場合にのみ機能します。

document.getElementById('p1').value = generator

また、テキストボックスの場合は、.valueの代わりにを使用します.innerHTML

于 2012-10-10T07:37:34.687 に答える
0

コードには複数の問題があります(宿題のように見える意図された機能も同様です)。入力フィールドにテキストを入力するには、この場合idは要素の属性を使用してid="p1"、に割り当てるのが最適document.getElementById('p1').valueです。サーバー側のフォームハンドラーにデータを送信しないため、フォーム送信は使用しないでください。代わりに、その中でイベントハンドラーを使用してください<input type="button">。比較を行う前に、onclick少なくともの結果をテストして、入力値が数値であることを確認してください。parseInt()の割り当てを削除しdocument.test.result.valueます。これは誤った参照であり、残りのコードの実行を中止します。そして、マークアップバリデーターでHTMLマークアップをチェックします。

于 2012-10-10T08:01:52.013 に答える
0

結果は何ですか

document.test.result.value=ジェネレーター;

フィールド p1 の名前を試してください。

document.test.p1.value=ジェネレーター;

于 2012-10-10T08:16:00.773 に答える