2012-02-06 3 views
0

У меня есть два текстовых поля на моей странице jsp. После ввода данных в первом текстовом поле, когда пользователь нажимает клавишу TAB, автоматически управляет вызовом сервлета (в javascript), затем заполняет второе текстовое поле. Любая помощь приветствуется.вызов сервлета из javascript при нажатии клавиши TAB

ответ

2

Вы можете подписаться на .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.

+0

thanks..but вместо URL, будет я пишу имя сервлета? не могли бы вы сказать мне, что .keydown() в первом текстовом поле? пожалуйста, покажите мне демо-версию без заголовка – Tom

+0

@tom, вы напишете URL-адрес, на который настроен ваш сервлет. Обычно это имя. Сначала проверьте вызов URL-адреса в адресной строке браузера, чтобы убедиться, что ваш сервлет работает. Это первый шаг. Также посмотрите на мой ответ для демонстрации 'no wrap (head)'. Все, что вам нужно сделать, - это обернуть свой код в '$ (document) .ready (function() {...});' или '$ (function() {...});'. Это гарантирует, что регистрация события «.keydown» произойдет только тогда, когда DOM будет полностью загружена и все элементы будут присутствовать. Если вы поместите этот скрипт непосредственно перед закрытием '', вам это не понадобится. –

+0

ya..i получил это, только один сомневался Дарин. Я получил значение 2-го текстового поля в качестве строки и могу разместить в значении 2-го текстового поля: , я путайте..пожалуйста, помогите мне немного, объяснив – Tom

1

Захват TAB нажатие клавиши в javascript с помощью keycode. Затем с помощью AJAX вызова для вызова вашего сервлета

Подробнее о AJAX

http://www.codeguru.com/forum/showthread.php?t=474951

+0

благодаря Сунил ... я видел это ... хороший форум – Tom

1

Вы можете попробовать этот. Просто позвоните в свою функцию, которая заполнит второе текстовое поле во втором событии размывания текстового поля.

$('#secondtextbox').blur(function() { 
    $.ajax({ 
      url: '/someservlet/', 
      type: 'POST', 
      data: { value: $('#firsttestbox').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"} 
       $(this).val(result.foo); 
      } 
     });  
}); 

Надеюсь, что это помогает

+0

спасибо Deepak ... i использовали то же самое, что указано выше – Tom

Смежные вопросы