返回输出函数javascript内部html

时间:2018-08-02 18:22:59

标签: javascript html

我想输出一个function secret();,所以它看起来像这样:

AAAA-BBB-<random string>

但是它返回此错误:

  

未捕获的TypeError:秘密不是函数

这是代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8" />
  <title>Random End String</title>
  <script type="text/javascript">
    function writeName() {
      var welcomeMsg = document.getElementById('welcome');
      var name = document.getElementById('name');
      var alamat = document.getElementById('alamat');
      var secret = secret();
      var formContent = document.getElementById('entername');
      welcomeMsg.innerHTML = "Your Identifier is " + name.value + "-" + alamat.value + "-" + secret + "";
      formContent.innerHTML = "";
    }
  </script>
  <script>
    function secret() {
      var text = "";
      var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
      for (var i = 0; i < 5; i++)
        text += possible.charAt(Math.floor(Math.random() * possible.length));
    }
  </script>
</head>
<body>
  <p id="welcome"></p>
  <form id="entername">
    Your Name:<input type="text" id="name" /><br/> LockerID:
    <input type="text" id="alamat" /><br/>
    <input type="hidden" id="secret">
    <input type="button" value="Submit" onclick="writeName();" />
  </form>
</body>
</html>

2 个答案:

答案 0 :(得分:2)

在此示例中,var secret不能很好地将其命名为secret1'。

编辑:您还需要返回“秘密文本”。

完整的示例:

function writeName() {
  var welcomeMsg = document.getElementById('welcome');
  var name = document.getElementById('name');
  var alamat = document.getElementById('alamat');
  var secret1 = secret();
  var formContent = document.getElementById('entername');
  welcomeMsg.innerHTML = "Your Identifier is " + name.value + "-" + alamat.value + "-" + secret1 + "";
  formContent.innerHTML = "";
}

function secret() {
  var text = "";
  var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

  for (var i = 0; i < 5; i++) {
    text += possible.charAt(Math.floor(Math.random() * possible.length));
  }
  return text
}

function writeName1() {
  var welcomeMsg = document.getElementById('welcome');
  var name = document.getElementById('name');
  var alamat = document.getElementById('alamat');
  var text = "";
  var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

  for (var i = 0; i < 5; i++) {
    text += possible.charAt(Math.floor(Math.random() * possible.length));
  }
  var formContent = document.getElementById('entername');
  welcomeMsg.innerHTML = "Your Identifier is " + name.value + "-" + alamat.value + "-" + text + "";
  formContent.innerHTML = "";
}
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="utf-8" />
  <title>Random End String</title>
</head>

<body>
  <p id="welcome"></p>
  <form id="entername">
    Your Name:<input type="text" id="name" /><br/> LockerID:
    <input type="text" id="alamat" /><br/>
    <input type="hidden" id="secret">
    <input type="button" value="Submit" onclick="writeName();" />
  </form>
</body>

</html>

Your Name:<input type="text" id="name1" /><br/> LockerID:
<input type="text" id="alama1t" /><br/>
<input type="hidden" id="secret1">
<input type="button" value="Submit" onclick="writeName1();" />

答案 1 :(得分:1)

您的局部变量secret隐藏了函数secret。只需将变量重命名为其他名称即可解决此问题

function writeName(){
 var welcomeMsg = document.getElementById('welcome');
 var name = document.getElementById('name');
 var alamat = document.getElementById('alamat');
 var secret = secret(); //right here this is your issue
 var formContent = document.getElementById('entername');

 welcomeMsg.innerHTML = "Your Identifier is "+name.value+"-"+alamat.value+"-"+secret+""; 
 formContent.innerHTML = "";

 }
相关问题