JQuery getJSON не работает с Spring MVC - PullRequest
0 голосов
/ 21 августа 2011

Следующий код не может отправить запрос на сервер, и я не могу понять, почему.

вот часть моей страницы jsp

 $(document).ready(function() {
    $('#firstName').change(function() {
        if(('#firstName').val().length >= 2){
                $.getJSON(
                   "getPSPersons.html", 
                   { firstName: $('#firstName').val(), lastName: $('#lastName').val()},
                   function(data) {
                     buildTable(data);
                   }
                );
         }
     });
  });
   -------------------------------
 <form:form name="addperson" method="GET">
      <label for="firstName">First Name</label> &nbsp;
      <input type="text" name="firstName" id="firstName" size="15"/>  &nbsp; &nbsp;
      <label for="lastName">Last Name</label> &nbsp;
      <input type="text" name="lastName" id="lastName" size="15"/>
  </form:form>

И функция класса контроллера Spring

   @RequestMapping(value="getPSPersons.html", method = RequestMethod.GET)
   public @ResponseBody List<Person> getPersonsWithNames(
         @RequestParam("firstName") String firstName, @RequestParam("lastName") String lastName) 
   {
       List<Person> personList = new ArrayList<Person>();
          if(firstName.length()>=2 || lastName.length() >=2)
    {
                 personList = personService.getPersonsWithName(firstName, lastName);
    }
          return personList;
    }

требует, чтобы, когда пользователь вводил более одного символа в "Поле ввода имени «firstname», запрос AJAx должен быть отправлен на сервер, чтобы получить всех людей, чье имя начинается с этих букв ... но здесь запрос get никогда не вызывает эту функцию.не могу найти, что это ..

----- update ---------

обнаружил ошибку .. в строке 3 это должно было произойти, если ( $ ('# firstName'). Val (). Length> = 2) {этот $ в начале отсутствовал

Ответы [ 2 ]

0 голосов
/ 21 августа 2011

я нахожу ошибку js.

('#firstName').val().length

это должно быть

$('#firstName').val().length

или

$(this).val().length

Вы потеряли "$", исправили это,я нашел, что запрос был отправлен.

0 голосов
/ 21 августа 2011

Если вы хотите вместо того, чтобы заново изобретать колесо, почему бы вам не использовать уже существующий виджет с автозаполнением - в JQuery написано немало.Мне просто нравится этот: http://code.drewwilson.com/entry/autosuggest-jquery-plugin - попробуй.

...