0

我需要制作一个盒子,这样当用户输入 1 到 6 的值时,它会掷出那么多骰子。我是 javascript 的完整初学者,任何帮助将不胜感激。

这是我的功能:

function NumberValue() {
        for (i = 0; i <['randNumber']; i++){
            var numberRoll = Math.floor(Math.random() * 6) + 1;
            var userNumber = '../images/die' + numberRoll + '.gif';
            myNewTag = "<img id='dieImgRandom' src='" + userNumber + "'>"
            document.getElementById('dieDivRandom').innerHTML += myNewTag;

这是我的身体元素:

<h1>Why don't you pick please?</h1>

<div id="dieDivRandom" style="text-align:center">

<p>

<div id="dieImageRand">

<img id="dieImgRandom" alt="die image" src="../images/die1.gif">

<br>

<input type="text" id="randNumber" size=20 value="Enter 1 through 6">

<input type="button" value="Click to Roll" onclick="NumberValue();">

</div>

该功能需要允许用户提交数字一、二、三、四、五或六,并且需要在屏幕上显示那么多图像。图像重新定位在我的图像文件夹中,因此相对链接可以正常工作。这实际上是我需要使用的。谢谢你。

4

2 回答 2

0

代替:

for (i = 0; i <['randNumber']; i++){

和:

for (i = 0; i <document.getElementById('randNumber').value; i++) {

<input />可以使用以下任一方式访问该标签:

  1. document.getElementById('inputId').value;
  2. document.formName.inputName.value

最后,您的代码变为:

function NumberValue() {
    for (i = 0; i < document.getElementById('inputId').value; i++) {
        var numberRoll = Math.floor(Math.random() * 6) + 1;
        var userNumber = '../images/die' + numberRoll + '.gif';
        myNewTag = "<img id='dieImgRandom' src='" + userNumber + "'>"
        document.getElementById('dieDivRandom').innerHTML += myNewTag;
    }
}
于 2013-02-18T04:39:20.797 回答
0

使用它从文本框中读取值

function NumberValue() {     
var ranNum = document.getElementById('randNumber').value;

        for (i = 0; i <ranNum ; i++){

        }

}

编辑:

如果要验证输入的数字

添加此代码块

function NumberValue() {     
var ranNum = document.getElementById('randNumber').value;
        if(ranNum < 1 || ranNum > 6) {
           alert("Please enter number from 1 to 6 only");
           return false;
          }

        for (i = 0; i <ranNum ; i++){

        }

        return true;

}
于 2013-02-18T04:40:41.540 回答