У меня была функция, которая снова сработала в функции. Поэтому я подумал, что использую .off()
, чтобы предотвратить это, а затем в конце хочу снова восстановить прослушиватели событий. Но понятия не имею, как это будет работать. Вот мой код.
$('#modal_add_season_season_price').on('input keyup paste change', function() {
$(this).off('input keyup paste change')
console.log("1")
$("#modal_add_season_price_warning").hide()
var c = this.selectionStart,
r = <?php echo $seperator=="," ? "/[^0-9,]/" : "/[^0-9.]/" ?>,
v = $(this).val(),
z = false;
i = 0;
while (r.test(v) && i < 10) {
z = true;
v = v.replace(r, '');
c--;
i++
}
if (z) {
$("#modal_add_season_price_warning").show()
$("#modal_add_season_price_warning").find('small').html("<i class=fas fa-exclamation-triangle'></i> Only numbers are allowed here. Decimal seperator is a <?php echo $seperator=="," ? "',' (comma)" : "'.' (dot)"; ?>")
$(this).val(v)
}
this.setSelectionRange(c, c);
if ($.isNumeric($(this).val()) && z == false) {
console.log(z)
$(".modal_add_season_season_price_valuta").addClass('is-valid')
$(".modal_add_season_season_price_valuta").removeClass('is-invalid')
$(this).addClass('is-valid')
$(this).removeClass('is-invalid')
$(".modal_add_season_season_price_span").addClass('is-valid')
$(".modal_add_season_season_price_span").removeClass('is-invalid')
}
else {
$(".modal_add_season_season_price_valuta").addClass('is-invalid')
$(".modal_add_season_season_price_valuta").removeClass('is-valid')
$(this).addClass('is-invalid')
$(this).removeClass('is-valid')
$(".modal_add_season_season_price_span").addClass('is-invalid')
$(".modal_add_season_season_price_span").removeClass('is-valid')
}
});
Итак, я заметил что-то странное, и с console.log
я увидел, что он выстрелил дважды. Я добавил .off()
, и теперь он выстрелил только один раз, как я хотел. Однако теперь у меня есть проблема, что он больше не слушает новые входы на этом входе. Я пытался погуглить, но безрезультатно. Может ли кто-нибудь помочь мне здесь?