0

我有一个在我在家测试时可以使用的功能,但是当我在家测试时它不起作用。该函数创建一个随机字符串,并在我加载表单后立即调用它。我似乎一切正常,除了功能。我不确定为什么会这样。有人可以帮帮我吗?

谢谢。

<script language="javascript" type="text/javascript">
function randomString() {
    var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghiklmnopqrstuvwxyz";
    var string_length = 3;
    var randomstring = '';
    var currentTime = new Date();
    var hours = currentTime.getHours();
    var minutes = currentTime.getMinutes();
    var seconds = currentTime.getSeconds();
    for (var i=0; i<string_length; i++) {
        var rnum = Math.floor(Math.random() * chars.length);
        randomstring += chars.substring(rnum,rnum+1);
    }
    document.getElementById('UniqueId').value = randomstring + hours + minutes + seconds;
}
</script>

4

1 回答 1

0

如果将此脚本放在head标签中,则可能在加载 html 的其余部分之前执行它。这意味着,还没有UniqueId加载 id 的此类元素,因此无法找到它。尝试在 html 文档完全加载后调用它。

yourFunction = function() { ...code... }
window.onload = yourFunction

更新:

<script type="text/javascript">
    var randomString = function() {
    var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghiklmnopqrstuvwxyz";
    var string_length = 3;
    var randomstring = '';
    var currentTime = new Date();
      var hours = currentTime.getHours();
      var minutes = currentTime.getMinutes();
      var seconds = currentTime.getSeconds();
      for (var i=0; i<string_length; i++) {
        var rnum = Math.floor(Math.random() * chars.length);
        randomstring += chars.substring(rnum,rnum+1);
      }
      document.getElementById('UniqueId').value = randomstring + hours + minutes + seconds;
  }

  window.onload = randomString;
</script>

在 Windows XP 和 Chrome 21 上的 Firefox 6 和 IE 8、Mac OS X 10.8 上的 Firefox 14 上进行了测试。有用。

于 2012-09-21T16:04:50.563 回答