JQuery getJSON не работает с Spring MVC
Следующий код не может отправить запрос на сервер, и я не могу понять, почему.
вот часть моей страницы 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>
<input type="text" name="firstName" id="firstName" size="15"/>
<label for="lastName">Last Name</label>
<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;
}
Требование состоит в том, что когда пользователь вводит более одного символа в поле ввода "имя", на сервер должен быть отправлен запрос AJAx, чтобы получить всех людей, чье имя начинается с этих букв... но здесь запрос get никогда не вызывает эту функцию. Я довольно уверен, что что-то не так на стороне запроса JQuery, но я не могу найти, что это такое..
-----Обновить---------
обнаружил ошибку.. в строке 3 это должно было произойти, если ($('#firstName'). val (). length> = 2) {этот $ в начале отсутствовал
2 ответа
Если вы хотите вместо того, чтобы заново изобретать колесо, почему бы вам не использовать уже существующий виджет с автозаполнением - в JQuery написано немало. Я просто люблю это: http://code.drewwilson.com/entry/autosuggest-jquery-plugin - попробуйте.
Я нахожу ошибку JS.
('#firstName').val().length
Это должно быть
$('#firstName').val().length
или же
$(this).val().length
Вы потеряли "$", исправили его, я обнаружил, что запрос отправлен.