#jquery
#jquery
Вопрос:
У меня есть несколько текстовых полей с идентификаторами, такими как manual_input_1, manual_input_2, manual_input_3. Я хочу остановить отправку формы при нажатии enter в этих текстовых полях.
Приведенный ниже код делает это, но теперь я хотел бы знать полный идентификатор текстового поля, нажимая enter, чтобы я мог получить значение поля. например, manual_input_2 нажал enter, значение = 1234.
$('[id^="manual_input_"]').keydown(function(e) {
if(e.which == 13) {
e.preventDefault();
var id = ?; <--- id of textbox that pressed enter
var value = ?; <--- value of textbox that pressed enter
alert('Enter pressed for ' id 'n'
'Value = ' value;
)
return false;
}
});
Можно ли это сделать? Примеры были бы действительно полезны.
Спасибо
Ответ №1:
Вы можете получить «идентификатор» с помощью
var id = this.id;
и значение с
var value = this.value;
Уровень отправки событий jQuery гарантирует, что this
при вызове обработчика ссылаются на затронутый элемент.
Ответ №2:
var id=$(this).attr('id');
var value=$(this).val();
Комментарии:
1. Это действительно работает, но далеко не так эффективно, как простой доступ к атрибутам «id» и «value» самого объекта DOM.
Ответ №3:
Просто используйте $(this)
:
$('[id^="manual_input_"]').keydown(function(e) {
if(e.which == 13) {
e.preventDefault();
var id = $(this).attr('id');
var value = $(this).val();
alert('Enter pressed for ' id 'n'
'Value = ' value;
)
return false;
}
});
Ответ №4:
$('[id^="manual_input_"]').keydown(function(e) {
if(e.which == 13) {
e.preventDefault();
//var id = ?; <--- id of textbox that pressed enter
//var value = ?; <--- value of textbox that pressed enter
var id = $(this).attr("id");
var value = $(this).val();
alert('Enter pressed for ' id 'n'
'Value = ' value);
return false;
}
});