Почему не закрывается prompt?

Всем привет! Есть следующий код

jQuery('.close').on("click", function(){
    let tab_ID = prompt("Введите табельный номер");
    var tabID = this.getAttribute('data-tabid');
    if ((tabID != null) && (tab_ID == tabID)) {
        alert("Всьо чьотко!");
    } else {
        alert("Ну-ка, фраер, сдал назад, работа не твоя!");
    }
});

Когда я нажимаю на кнопку с классом "close", открывается окно prompt с полем ввода для табельного номера, после его ввода и нажатия на "ОК" выводит alert с соответствующим сообщением в зависимости от условий, но после нажатия "ОК" на алерте снова открывается prompt, а мне надо, чтобы оно закрылось, как это сделать?


Ответы (1 шт):

Автор решения: Denis640Kb

На самом деле Вы не должны встречать подобной ошибки.
Проверьте, нет ли у кнопки отдельного вызова onclick, где так же может присутствовать prompt, а так же полностью посмотрите, где дополнительно Вы можете вызвать обработчик нажатия кнопки или вызовов prompt.

Если разобрать код по составляющим, то
При нажатии любой кнопки с классом close у Вас вызывается цепочка действий, в которой:
Вызывается prompt для ввода данных. После ввода и нажатия кнопки, данное окно закрывается.
Далее выполняется проверка и вызов алертов. В данном случае, точно никак не может вызываться ещё раз prompt, если Вы снова не нажимаете на одну из кнопок с классом close.
Вам необходимо либо самостоятельно проверить весь код на вызов prompt в других местах, или убедиться, что нет другого способа вызова нажатия кнопки.
Или выложите больше кода, чтобы мы смогли сказать Вам более подробно.

Вот пример вызовов нажатия кнопок с той последовательностью, что Вы указали:

    jQuery('.close').on("click", function(){
        let tab_ID = prompt("Введите табельный номер");
        var tabID = this.getAttribute('data-tabid');
        if ((tabID != null) && (tab_ID == tabID)) {
            alert("Всьо чьотко!");
        } else {
            alert("Ну-ка, фраер, сдал назад, работа не твоя!");
        }
    });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button data-tabid="123" class="close">Закрыть</button>
<button data-tabid="222" class="close">Закрыть</button>
<button data-tabid="321" class="close">Закрыть</button>

→ Ссылка