【发布时间】:2015-07-06 17:49:42
【问题描述】:
考虑这段代码:
function reason(id) {
var reason = prompt("State reason");
while (!reason.trim()) {
reason = prompt("Please enter text");
}
document.getElementById(id).value = reason;
return true;
}
它工作得很好,但是当我想通过按 Escape 来摆脱弹出窗口时,该函数返回 true,因为表单执行。如果我关闭/取消弹出窗口,我应该怎么做才能让它什么都不做?
【问题讨论】:
-
返回假;应该适用于这两种情况
-
return reason;可能有效 - 取消时提示返回 null。 -
@morbidCode 点击
Cancel相当于在prompt和confirm对话框中按Esc。 -
@morbidCode:是的,但有效地按下转义键正在调用“取消”操作。另外,请注意 Safari 在取消时也会返回一个空字符串——它不区分取消和输入一个空字符串(通过MDN),因此您可能会陷入无限提示循环。
标签: javascript