以下代码无法向服务器提交请求,我无法找出原因。
这是我的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;
}
要求是,当用户在"firstname"输入框中输入多个字符时,应该向服务器提交一个AJAx请求,以获取所有firstname以这些字母开头的人…但是这里get请求从不调用这个函数。我很确定JQuery请求端有问题,但我找不到它是什么。
——更新 ---------
发现错误…第3行应该是如果( (# firstName) .val()。长度>= 2){开头的$缺少
如果您愿意,与其重新发明轮子,为什么不使用已有的自动建议小部件—有相当多的是用JQuery编写的。我只是喜欢这个:http://code.drewwilson.com/entry/autosuggest-jquery-plugin -给它一个尝试。
我发现一个js错误。
('#firstName').val().length
必须是
$('#firstName').val().length
或
$(this).val().length
您丢失了"$",修复它,我发现请求已发送