Почему не закрывается 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 шт):
На самом деле Вы не должны встречать подобной ошибки.
Проверьте, нет ли у кнопки отдельного вызова 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>