在同一HTML页面的文本框字段中显示随机数

时间:2012-10-10 07:33:49

标签: javascript html

我有代码,当我点击提交按钮时,我需要获取一个随机数。随机数应显示在另一个文本框的同一页面中。

这是我的代码:

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

5 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

在您的html中更好地在此模式下更改输入文本:

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

并使用此javascript代码更改值:

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

因为id是唯一的,您可以更好地选择元素

答案 2 :(得分:1)

这应该这样做

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

问题是“p1”不是文本框的id而是名称。上述代码仅适用于名称为“p1”的一个元素的情况。

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

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

此外,对于文本框,请使用.value代替.innerHTML

答案 3 :(得分:0)

代码存在多个问题(以及预期的功能,看起来像是家庭作业)。要将文本放在输入字段中,最好在元素中使用id属性,在这种情况下为id="p1",并分配给document.getElementById('p1').value。不要使用表单提交,因为您没有将数据提交给服务器端表单处理程序。相反,请在其中使用<input type="button">onclick事件处理程序。在对输入值进行任何比较之前,至少通过测试parseInt()的结果来检查输入值是否为数字。删除document.test.result.value的赋值,作为错误的引用,并中止其余代码的执行。并使用标记验证器检查HTML标记。

答案 4 :(得分:0)

结果是什么

document.test.result.value =发生器;

尝试字段p1的名称。

document.test.p1.value =发生器;