JavaScript:如何在确认框中默认选择"取消"?

Pra*_*ant 33 javascript jquery confirm

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

替代文字

在图像中,默认选择"确定"按钮.我想默认选择"取消"按钮,这样如果用户意外按下该enter键,记录将是安全的,不会被删除.

在JavaScript中有没有办法默认选择"取消"按钮?

Mai*_*ori 11

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

"使用jQuery +插件X"的答案开始变得烦人.有很多JS库,还有更多的插件.例如,如果您只想显示自定义对话框,则不需要使用任何JS库.虽然这是一个快速的解决方案/答案,但从长远来看,这样的答案会带来更大的伤害.初学JavaScript或编程的人开始认为jQuery和/或插件是唯一的方法,他们包括50kb +库只是为了编写自己的3行(有时甚至不使用库:D).

在我看来,马库斯约翰逊评论是最好的答案,遗憾的是它没有作为一个发布.

  • @AbiusX,缓存不在不同站点之间共享.浏览器也可以保持一个本地副本,因为没有办法让他们验证`<脚本类型="文/ JavaScript的" SRC ="的jquery.js"> </ SCRIPT>`其实jQuery的.如我错了请纠正我. (2认同)

rah*_*hul 10

如果你可以使用jQuery插件,那么这里是一个很好的插件

jQuery Impromptu

要更改默认的焦点按钮:

$.prompt('Example 4',{ buttons: { Ok: true, Cancel: false }, focus: 1 });
Run Code Online (Sandbox Code Playgroud)


Luk*_*man 7

我认为你不能这样做.

但是,您肯定会让用户更难以"同意"确认,例如强制用户在输入框中键入"y":

agree = (prompt("Type 'y' to accept", '') == 'y');
Run Code Online (Sandbox Code Playgroud)

  • 说'提示'是邪恶的,就像说'goto`是邪恶的(许多人这样做),而不是认识到`goto`,就像`prompt`一样,是一个具有完全合法用例的工具.不恰当地使用它是一个坏主意,但这不是工具本身的问题. (4认同)
  • @josh-你能解释一下吗? (3认同)
  • 荒谬,提示很好.在选择错误的按钮可能导致灾难的情况下,比简单的按钮更好.就像删除大的东西或者对某些重要的东西一样:要求用户输入"是". (3认同)