【问题标题】:Uncaught SyntaxError: Identifier has already been declared未捕获的 SyntaxError:标识符已被声明
【发布时间】:2021-09-29 14:22:16
【问题描述】:

我想做一个模态cookie,在页面加载时,模态检查是否有cookie,然后如果没有“名称”cookie,模态将显示。否则,模态将不会显示。但是,我有这个错误:

未捕获的 SyntaxError:标识符“addCookie”已被声明。

由于这个错误,我的 cookie 没有保存。

我了解当有人试图覆盖 let 时会发生此错误。但是,我没有尝试覆盖它,我只是尝试调用它

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.js"></script>

<div id="modalWelcome" class="modal fade" data-backdrop="false">
  <div class="form-group">
    <input type="text" class="form-control" placeholder="your name" id="fname">
  </div>
  <button type="submit" class="btn btn-primary" onclick="addCookie()">go!</button>
</div>
if ($.cookie('name') == undefined) {
  $("#modalWelcome").modal('show');
} else {
  $('#modalWelcome').modal('hide');
}

var cookiename;
let addCookie = () => {
  cookiename = $('#fname').val();
  $.cookie("name", cookiename);
}

【问题讨论】:

  • 错字,jQuery 没有value 属性。 $('#fname').value 必须是 $('#fname').val()

标签: javascript html jquery bootstrap-4


【解决方案1】:
  1. onclick="addCookie()"更改为onclick="addCookie",因为您需要设置处理程序,而不是执行。
  2. 检查脚本的包含方式,因为您可以包含两次。

【讨论】:

  • 不,它不起作用。无论如何,谢谢你:)
  • @sirj 你如何在页面上包含你的脚本?
  • 在阅读了您的评论后,我去检查了标签中的脚本。我意识到我有很多不必要的标签,我把它们都清除了。再次尝试后,代码有效。谢谢!
猜你喜欢
  • 2021-10-25
  • 2018-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-26
  • 2021-03-28
  • 1970-01-01
相关资源
最近更新 更多