У меня есть два текстовых поля на моей странице jsp. После ввода данных в первом текстовом поле, когда пользователь нажимает клавишу TAB, автоматически управляет вызовом сервлета (в javascript), затем заполняет второе текстовое поле. Любая помощь приветствуется.вызов сервлета из javascript при нажатии клавиши TAB
ответ
Вы можете подписаться на .keydown()
событие первого текстового поля, и если ключ был TAB вызвать запрос AJAX для сервлета:
$(function() {
// subscribe to the keydown event
$('#text1').keydown(function(e) {
// when a key is pressed check if its code was 9 (TAB)
if (e.which == 9) {
// if TAB was pressed send an AJAX request
// to the server passing it the currently
// entered value in the first textbox
$.ajax({
url: '/someservlet/',
type: 'POST',
data: { value: $(this).val() },
success: function(result) {
// when the AJAX succeeds update the value of the
// second textbox using the result returned by the server
// In this example we suppose that the servlet returns
// the following JSON: {"foo":"bar"}
$('#text2').val(result.foo);
}
});
}
});
});
Вот live demo.
thanks..but вместо URL, будет я пишу имя сервлета? не могли бы вы сказать мне, что .keydown() в первом текстовом поле? пожалуйста, покажите мне демо-версию без заголовка – Tom
@tom, вы напишете URL-адрес, на который настроен ваш сервлет. Обычно это имя. Сначала проверьте вызов URL-адреса в адресной строке браузера, чтобы убедиться, что ваш сервлет работает. Это первый шаг. Также посмотрите на мой ответ для демонстрации 'no wrap (head)'. Все, что вам нужно сделать, - это обернуть свой код в '$ (document) .ready (function() {...});' или '$ (function() {...});'. Это гарантирует, что регистрация события «.keydown» произойдет только тогда, когда DOM будет полностью загружена и все элементы будут присутствовать. Если вы поместите этот скрипт непосредственно перед закрытием '