如何通过按ESC键(Javascript)来防止中止?

时间:2019-10-23 11:07:03

标签: javascript escaping key keycode

我想提示一个字符串。我的其他需要是不要通过按ENTER或ESC键退出。 ENTER可以使用这种方法(无法逃脱):

var f1 = '';
while (f1.length < 1) {
  f1 = prompt('Please give a value of the string!');
}

我如何才能找到该脚本也无法通过按ESC退出的功能? 谢谢, 哈扎兹

2 个答案:

答案 0 :(得分:0)

当单击ESC按钮时,

prompt返回null。您还需要同时检查null

while (f1 == null || f1.length < 1)

或者简单地

while (!f1)

使用这个:

var f1 = '';
while (!f1) {
     f1 = prompt('Please give a value of the string!');
}
  

注意:由于Cancel和ESC都返回null,因此您将无法   不过请取消。

答案 1 :(得分:-1)

容易。首先,您必须提供提示的默认值,并将其设置为提示,然后通过将默认值与新值进行比较来检查提示是否为空。如果用户忽略提示,则默认值为最终值。在那里,我们会得到它。当用户忽略或按Enter或ESC键时,我将返回false到结果。

document.getElementById("test").addEventListener("click", function() {
    var oldVal = 'Enter Name:';
    var newVal = prompt("Enter new value:", oldVal);
    var results = document.getElementById("results");
    if (newVal === null || newVal === oldVal) {
        results.innerHTML = false;
        //And here if the prompt is empty just do what you want.
    } else {
        results.innerHTML = true;
    }
});
<button id="test">Test</button>
<div id="results"></div>