Как предотвратить прерывание, нажав клавишу ESC (Javascript)? - PullRequest
2 голосов
/ 23 октября 2019

Я хотел бы подсказать строку. Моя дополнительная потребность состоит в том, чтобы не сбежать нажатием клавиши ENTER или ESC. С этим методом работает ENTER (не экранирует):

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

Как я могу достичь, чтобы этот скрипт не экранировал при нажатии ESC? Спасибо, хазаз

Ответы [ 2 ]

0 голосов
/ 23 октября 2019

prompt возвращает null при нажатии кнопки ESC. Вы должны проверить ноль также в то время как

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

Или просто

while (!f1)

Используйте это:

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

Примечание: как Отмена и ESCоба возвращают ноль, но вы не сможете отменить его.

0 голосов
/ 23 октября 2019

Легко. Сначала вы должны задать значение приглашения по умолчанию и установить его в качестве приглашения и проверить, является ли приглашение пустым, сравнивая значение по умолчанию с новым. Если пользователь игнорирует приглашение, значением по умолчанию является окончательное значение. И там мы получим это. Я возвращаю false к результатам, когда пользователь игнорирует их или нажимает ввод или esc.

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>
...