【问题标题】:How can I prevent an confirmation from being called through a certain action?如何防止通过某个操作调用确认?
【发布时间】:2021-02-03 23:01:12
【问题描述】:

我有以下代码:

var noteName;
function reset() {

confirmation = confirm("Are you sure you'd like to delete " + noteName + "?");
  if(confirmation === false) {
  alert("Deletion Cancelled");
}
else if(localStorage.getItem('savetext') === null) {
  alert("There is nothing to delete");
}
else {
   alert("Delete Successful");
   localStorage.removeItem('savetext');
  document.getElementById("confirmation-Here").innerHTML = "Deleted";
 }
}

我想要做的是,如果用户按下删除按钮,它会输出一个确认警报,用户可以选择取消 (false) 或按 OK (true) 继续操作。然而,虽然这确实有效,但当本地存储已经为空时,问题就出现了,看到相同的用户弹出窗口显示“你确定要删除未定义吗?”,这很烦人。未定义是因为保存后,我已经设置了它,以便用户可以命名他们保存的文本。但是通过本地存储删除文本,名称本身已被删除,因此它返回未定义。问题是,如果本地存储为空并且显示未定义,我不希望出现共享弹出窗口。我只是想让它提醒:“没有什么可删除的”。就这样。 变量“noteName”已在前面的代码中定义**

我想不出一种方法来重组我的代码,以便在本地存储中没有任何内容时不会返回确认警报。我该怎么办?我应该如何更改此代码?

【问题讨论】:

  • getItem() 在密钥不存在时返回 null 而不是 undefined
  • 哦,好的,谢谢。

标签: javascript html function if-statement confirmation


【解决方案1】:

试试这个代码

function reset() {
  if (!localStorage.getItem("savetext")) return;

  confirmation = confirm("Are you sure you'd like to delete " + noteName + "?");
  if (!confirmation) {
    alert("Deletion Cancelled");
  } else {
    alert("Delete Successful");
    localStorage.removeItem("savetext");
    document.getElementById("confirmation-Here").innerHTML = "Deleted";
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-29
    • 2012-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-07
    相关资源
    最近更新 更多