Попытка выполнить некоторую проверку jQuery (без плагина - пожалуйста, не отвечайте, например, "Просто используйте плагин validate-js").
Я подключаю обработчик событий на стороне клиента нажатие клавиши для каждого «обязательного поля» в готовом документе:
$(document).ready(function() {
$('#myform input.required').each(function() {
$(this).keypress(onRequiredFieldKeyPress);
});
});
, который корректно запускает это событие при каждом нажатии клавиши:
function onRequiredFieldKeyPress() {
if ($(this).val().trim() == '') {
$(this).next('em').html('*').show(); // show req field indicator
} else {
$(this).next('em').html('*').hide(); // hide req field indicator
}
}
Но $ (this) .val ()всегда ноль / пусто.Похоже, он переходит в «HTMLInputElement», что я и ожидал, но почти как будто мне нужно спроектировать это в какой-то другой тип jQuery?
По сути я пытаюсьсделать это: на событии нажатия клавиши любого поля, которое у меня есть (все элементы ввода), вызвать эту функцию.В этой функции, если это поле имеет значение '' (пустое), тогда покажите скрытое поле, в котором отображается обязательный индикатор поля.
Мне все равно , какой фактический элементЯ нажал клавишу, так как поведение моей логики будет таким же.Мне просто нужно получить фактическое значение.
Я что-то упустил?