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>

随机数在脚本中的变量“生成器”中生成。我需要获取此文本字段中的值。

<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”的一个元素的情况。

仅当您使用“p1”作为文本框的 ID 时,以下内容才有效。

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 回答