【问题标题】:Uncaught ReferenceError: $function is not defined未捕获的 ReferenceError: $function 未定义
【发布时间】:2021-03-12 23:06:34
【问题描述】:

此函数的目的是默认将时间戳加载到表单元素中,但似乎在 HTML 呈现时从未加载此 javascript 函数。

<!DOCTYPE html>
<html>
<script type=”text/javascript”>
  function Timestamp() {
    const currentTime = new Date();
    var year = currentTime.getFullYear();
    var month = currentTime.getMonth();
    var day = currentTime.getDate();
    var dash = "-";
    var space = " ";
    var colon = ":";
    var hour = currentTime.getHours();
    var minutes = currentTime.getMinutes();
    var seconds = currentTime.getSeconds();
    var timestamp = year.concat(dash, month, dash, day, space, hour, colon, minutes, colon, seconds);
    document.getElementById("curr").innerHTML = timestamp;
    console.log(timestamp);
  }
</script>

<head>
  <title>Create New Reservation</title>
</head>

<body onload="Timestamp()">
  <h1>Enter Reservation Details</h1>
  <h3>Current Time: <span id="curr"></span></h3>
  <form method="post" action="form.php">
    <fieldset>
      <label>Current Time</label>
      <type="text" />
      <input type="text" id="occurred" name="occurred">


  </form>
</body>

</html>

控制台输出如下错误:

“未捕获的引用错误:未定义时间戳”

【问题讨论】:

  • 尝试将脚本移动到&lt;head&gt; 并可能更改type=”text/javascript” 以使用正常的双引号。或者只是删除该属性。简单的脚本不再需要它了。
  • &lt;html&gt; 只能有 &lt;head&gt;&lt;body&gt; 子级。 developer.mozilla.org/en-US/docs/Web/HTML/Element/html
  • year 是一个数字而不是字符串,因此没有 concat 方法。 year.toString().concat(...。或者使用可用的DateTimeFormat 对象。

标签: javascript html referenceerror


【解决方案1】:

“文本/javascript”将不起作用。使用“文本/javascript”

 
<!DOCTYPE html>
<html>


<head>
  <title>Create New Reservation</title>
</head>

<body onload="Timestamp()">
  <h1>Enter Reservation Details</h1>
  <h3>Current Time: <span id="curr"></span></h3>
  <form method="post" action="form.php">
    
      <label>Current Time</label>
      <type="text" />
      <input type="text" id="occurred" name="occurred">


  </form>
  <script>
  function Timestamp() {
    const currentTime = new Date();
    var year = currentTime.getFullYear();
    var month = currentTime.getMonth();
    var day = currentTime.getDate();
    var dash = "-";
    var space = " ";
    var colon = ":";
    var hour = currentTime.getHours();
    var minutes = currentTime.getMinutes();
    var seconds = currentTime.getSeconds();
   var timestamp = year + dash + month + dash+ day+ space+ hour+ colon+ minutes+ colon+ seconds;
    document.getElementById("curr").innerHTML = timestamp;
    console.log(timestamp);
  }
  </script>
 
</body>

</html>

【讨论】:

  • 我没有立即看到它,问题是“智能引号”与常规引号。 OP 应该使用不默认这些的 IDE(或者可能从拥有它们的站点复制粘贴,之前被此咬过)。
猜你喜欢
  • 2023-03-20
  • 1970-01-01
  • 2017-05-10
  • 2023-01-23
  • 2016-11-03
  • 2011-01-05
  • 2016-01-02
  • 2013-10-06
  • 2016-12-17
相关资源
最近更新 更多