【问题标题】:Call function to prompt for password on button click [duplicate]调用函数以在按钮单击时提示输入密码 [重复]
【发布时间】:2017-12-03 10:43:21
【问题描述】:

我试图要求输入密码来结束活动并返回登录页面,但是当我单击按钮时没有任何反应。

我正在使用的功能和按钮如下。请注意,这是我用来提交到下一页的表单末尾的下方。

<button id="exitBtn">End Event</button>

<script>
  var exitBtn = document.getElementById("exitBtn");
  exitBtn.addEventListener("click", password());

  function password() {
    var realPW = "<?php echo $pw ?>";
    var pword = prompt("Please enter your password:");
    if (realPW == pword) {
      self.location = "LoginBox.php"
    }
</script>

【问题讨论】:

  • 错字:该函数缺少关闭}
  • 危险 您正在暴露页面源代码中的密码。这不是远程安全的。
  • 我重新输入了函数而不是复制和粘贴,但括号在实际代码中。而且这不会是一个公共网页,这个内部应用程序的安全性也不是最重要的。

标签: javascript html


【解决方案1】:

当您使用password() 时,您正在直接调用该函数,您应该只使用password

如果passwordreturn password; 结尾,那么您的代码将起作用,因此addEventListener 方法将使用它,但事实并非如此。所以你的函数返回undefined,最终发生的是.addEventListener('click', undefined);

固定代码:

结束活动

<script>
var exitBtn = document.getElementById("exitBtn");
exitBtn.addEventListener("click", password);

function password() {
    var realPW = "<?php echo $pw ?>";
    var pword = prompt("Please enter your password:");
    if (realPW == pword) {
        self.location = "LoginBox.php"
    }
}
</script>

【讨论】:

  • 有人愿意评论否决票吗?是因为我回答了一个重复的问题吗?
猜你喜欢
  • 1970-01-01
  • 2015-02-21
  • 1970-01-01
  • 1970-01-01
  • 2013-12-13
  • 1970-01-01
  • 2017-08-15
  • 2013-10-27
  • 1970-01-01
相关资源
最近更新 更多