我想在点击按钮时显示一条警告
消息。按下警报弹出窗口的确定后,我将进行进一步处理。
这是预期的流程,但是当用户按下 Esc 按钮时,也没有单击“确定”,我的页面将进入进一步处理。我想限制此流程,即限制 Esc 按钮事件,但我找不到任何方法来执行此操作。
var keynum
if (window.event) { // For IE
keynum = e.keyCode
} else if (e.which) { //For netscape Mozilla Firefox
keynum = e.which
}
if (keynum == '113' && saleFlag == true) {
var totalQty = document.getElementById('totalQty').textContent;
var totalAmt = document.getElementById('totalAmount').textContent;
alert("You Played Total Qty: " + totalQty + " of Rs. " + totalAmt);
} else if (keynum === '27') {
return false;
}
但警报消息仍处于关闭状态。
我想要在 113 键码事件上打开的警报消息。
最佳答案
alert()
的问题是它总是返回undefined
,没有提示您按下了什么。相反,您可以使用 confirm()
来显示类似的弹出窗口。
但是,confirm
的优点是,如果您在弹出窗口中单击“确定”,它会返回一个true
,如果您按下,它会返回一个false
esc 或“取消”。
因此,使用 confirm
,您可以使用 do-while
循环来不断弹出弹出窗口,直到用户按下“OK”(或按下 输入键)
请看下面的例子:
let res;
do {
res = confirm("Popup");
} while(!res);
使用 native 确认/警告框不是很好的用户体验,因为它会卡住 UI 线程。如果可以避免,我建议使用 DOM 打开通过 HTML 构建的弹出窗口/模式。这可以通过使用库轻松完成。
关于javascript - 如何在警报时禁用 Esc 按钮事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54572316/