36

当用户单击“删除数据”按钮时,我正在显示一个 JavaScript 确认框。我正在显示它,如下图所示:

替代文字

在图像中,默认选择“确定”按钮。我想默认选择“取消”按钮,这样如果用户不小心enter按键,记录就安全了,不会被删除。

JavaScript中是否有任何方法可以默认选择“取消”按钮?

4

4 回答 4

14

你不能这样做,但你可以使用/编写你自己的对话框,它使用 DOM 元素显示(就像 phoenix 建议的那样,它不必是那个特定的 jQuery 插件,你可以编写自己的或使用另一个插件JS 框架)。

“使用 jQuery + 插件 X”的答案开始变得烦人。那里有很多 JS 库,甚至更多的插件。例如,如果您只想显示自定义对话框,则无需在此处使用任何 JS 库。虽然这是一个快速的解决方案/答案,但从长远来看,这样的答案弊大于利。刚接触 JavaScript 或一般编程的人开始认为 jQuery 和/或插件是唯一的出路,它们包含 50kb+ 的库只是为了编写自己的 3 行代码(有时甚至不使用库:D)。

在我看来,Markus Johnsson 的评论是最好的答案,很遗憾它没有作为一个发布。

于 2009-11-09T08:12:10.627 回答
9

如果您可以使用 jQuery 插件,那么这是一个不错的插件

jQuery 即兴

要更改默认的焦点按钮:

$.prompt('Example 4',{ buttons: { Ok: true, Cancel: false }, focus: 1 });
于 2009-11-09T07:41:27.117 回答
7

我不认为你能做到这一点。

但是您绝对可以让用户更难意外地“同意”确认,例如通过强制用户在输入框中输入“y”:

agree = (prompt("Type 'y' to accept", '') == 'y');
于 2009-11-09T07:38:42.920 回答
0

这对我有用

function confirmAction(){
  if(prompt("Type 'YeS' to confirm, this action is irreversible.", '') == 'YeS'){
      another();
  }else{
    alert("Canceled!!!");
  }
}
function another(){
  alert("suuccess");
}
<button onClick="return confirmAction()">Confirm</button>

于 2021-02-17T20:35:22.030 回答