Проблема в том, что this
в вашей функции не ссылается на элемент, вызвавший событие, из-за использования устаревшего атрибута события on*
.
Чтобы исправить это, вы можете использовать ненавязчивый обработчик событий. Поскольку вы уже включили jQuery на страницу, вы можете использовать keypress()
, например:
$(function() {
$('.only-alpha').keypress(function(e) {
var char = e.which;
if (char > 31 && char != 32 && (char < 65 || char > 90) && (char < 97 || char > 122)) {
console.log('only alphebets are allowed');
var div = $(this).closest('div');
div.append('<i class="fas fa-times">X</i>');
return false;
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="col-md-4 ">
<label for="lastName">Last Name:</label>
<input type="text" class="form-control only-alpha" placeholder="Last Name" id="lastName">
</div>