在JavaScript中生成随机数并将其传递给HTML输入标记

时间:2014-03-11 02:34:23

标签: javascript html

我的脚本,存储为单独的js文件:

function randomNumber(len) {
    var randomNumber;
    var n = '';

    for(var count = 0; count < len; count++) {
        randomNumber = Math.floor(Math.random() * 10);
        n += randomNumber.toString();
    }

    return n;
}

var finalSequence = randomNumber(9);

document.write('<INPUT TYPE=TEXT NAME="ACCOUNT" VALUE='+finalSequence +' MAXLENGTH=16 SIZE=16>');

我在我的html文件中包含了这个td标记:

<td align=left><FONT FACE="Arial,Helvetica"><script src="nexgen.js"></script>

您是否建议我在html文件中编写脚本?

我想使用input标记显示生成的随机数,如下所示。我该怎么做?

<INPUT TYPE=TEXT NAME="ACCOUNT" VALUE= ???  MAXLENGTH=16 SIZE=16>

更新

我将JavaScript和html组合在一个html文件中,如下所示。请查看您是否可以发现任何错误,因为生成的数字未显示在html页面上。

Javascript部分:

function randomNumber(len) {
    var randomNumber;
    var n = '';

    for(var count = 0; count < len; count++) {
        randomNumber = Math.floor(Math.random() * 10);
        n += randomNumber.toString();
    }

    document.getElementById("ACCOUNT").value = n;
    return n;
}

HTML部分:

<tr>
  <td><FONT FACE="Arial,Helvetica" color="red"> Transaction ID: </font></td>
  <td align=left>
    <FONT FACE="Arial,Helvetica">
      <script> randomNumber(9); </script>
      <INPUT TYPE=TEXT NAME="ACCOUNT" ID="ACCOUNT" VALUE="" MAXLENGTH=16 SIZE=16 readonly>
    </font>
  </td>
</tr>

6 个答案:

答案 0 :(得分:4)

为您的input元素分配ID,然后在JavaScript中,将生成的值分配给该元素。

Html就像:

<INPUT TYPE=TEXT NAME="ACCOUNT" ID="ACCOUNT" VALUE=""  MAXLENGTH=16 SIZE=16>

JavaScript就像:

function randomNumber(len) {
    var randomNumber;
    var n = '';

    for(var count = 0; count < len; count++) {
        randomNumber = Math.floor(Math.random() * 10);
        n += randomNumber.toString();
    }
    return n;
}

document.getElementById("ACCOUNT").value = randomNumber(9);

工作jsFiddle

答案 1 :(得分:0)

这样的事情,但你可以用不同的方式做到这一点:

http://jsbin.com/hujefopa/1/edit

function rand(len){
  return Math.floor(Math.random() * Math.pow(10, len));
}

function setRand(){
   document.getElementById('rand').value = rand(9); 
}
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body onload="setRand()">
  <input type="text" id="rand">
</body>
</html>

答案 2 :(得分:0)

BTW,如果你想生成一定长度的随机数,你可以用比一个数字大得多的块来做,例如:

function longRandom(length) {
  var n = '';
  while (n.length < length) {
    n += ('' + Math.random()).split('.')[1];
  }
  return n.substr(0, length);
}

console.log(longRandom(42)); // 134434793311713322660940870849409308530315

将在每个循环中以大约15位数的块进行。 : - )

答案 3 :(得分:0)

请注意:

  1. 如果你的脚本很小,最好把它放在页面本身而不是导入新文件(新请求到服务器)。
  2. 建议不要使用document.write。见this question
  3. 要更新html输入的值,您可以使用:

    document.getElementById('id-of-your-input-element').value = newValue;
    

    或使用jQuery:

    $('#id-of-your-input-element').val(newValue);
    

答案 4 :(得分:0)

使用javascript生成随机数,并使用类似于下面提到的代码在html中传入输入表单标记。

Javascript:

function randomNumber(len) {
    var randomNumber;
    var n = '';

    for(var count = 0; count < len; count++) {
        randomNumber = Math.floor(Math.random() * 10);
        n += randomNumber.toString();
    }
    return n;
}

window.onload = function() {
document.getElementById("ACCOUNT").value = randomNumber(9);
};

HTML部分:

<INPUT TYPE=TEXT NAME="ACCOUNT" ID="ACCOUNT" VALUE=""  MAXLENGTH=16 SIZE=16>

答案 5 :(得分:0)

HTML PART

    <tr>
    <td><FONT FACE="Arial,Helvetica" color="red"> Transaction ID: </font></td>
    <td align=left>
    <FONT FACE="Arial,Helvetica">
    <INPUT TYPE=TEXT NAME="ACCOUNT" ID="ACCOUNT" VALUE="" MAXLENGTH=16 SIZE=16 
    readonly>
    </font>
    </td>
    </tr>

JavaScript部分

     <script>
    document.getElementById('ACCOUNT').value=Math.floor(Math.random() * 10);
    </script>