0

以下代码无法将请求提交到服务器,我无法弄清楚原因。

这是我的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;
    }

要求是当用户在“名字”输入框中输入多个字符时,应向服务器提交 AJAx 请求以获取所有名字以这些字母开头的人......但这里的 get 请求从不调用此函数。 .我很确定JQuery请求端出了点问题,但我找不到它是什么..

- - -更新 - - - - -

发现错误..在第 3 行应该是 if( $ ('#firstName').val().length >= 2){ 开头的 $ 丢失了

4

2 回答 2

0

如果您愿意,而不是重新发明轮子,为什么不使用预先存在的自动建议小部件 - 有很多是用 JQuery 编写的。我只是喜欢这个:http ://code.drewwilson.com/entry/autosuggest-jquery-plugin - 试一试。

于 2011-08-20T22:38:40.210 回答
0

我发现一个js错误。

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

肯定是

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

或者

$(this).val().length

你丢失了“$”,修复它,我发现请求已发送。

于 2011-08-21T00:53:23.840 回答