我有代码,当我点击提交按钮时,我需要获取一个随机数。随机数应显示在另一个文本框的同一页面中。
这是我的代码:
<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>
答案 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 =发生器;