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

ホイールを再発明するのではなく、既存の autosuggest ウィジェットを使用してみませんか? 私はこれが大好きです: 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 に答える