0

以下は私のjQueryコードです:

$("#destinations").autocomplete({
    source: function (request, response) {
        $.getJSON("http://localhost/contactApi.do?&callback=?", 
          { 'contactMobile': request.term, maxRows: 12, style: "full" }, 
          function(data) {
              if(data.ApiResponse){
                  var x = $.map(data.ApiResponse, function(v, i){
                      console.log(v)
                      return {
                          label: v.Mobile + ' - ' + v.Name, 
                          v: v.Name
                      }
                  });
                  response(x);
              }
          }
        );        
    }
})

123 のような携帯電話番号を入力した結果として、次の JSON 応答が作成されることを FireBug で確認できます...

{"ApiResponse":{"Status":1000,"TransactionId":"","Data":{"Contacts":[{"Email":"","Mobile":"123456","Name":"john"}]},"Operation":"api","ResponseTime":"2013-02-05T16:08:33+11:00","StatusText":"Success","RequestTime":"2013-02-05T16:08:33+11:00","Object":"Contact"}} 

これは、jQuery 部分がおそらく正常に動作することを示していますが、フィルタリングされた結果を表示するためのドロップダウンが入力領域の下に表示されません。スクリプトまたは JSON 形式に何か問題がありますか?

ありがとう、

4

1 に答える 1

0

JqueryUI オートコンプリート APIオートコンプリートから

label プロパティが提案メニューに表示されます。ユーザーが項目を選択すると、値が入力要素に挿入されます。プロパティを 1 つだけ指定すると、両方に使用されます。たとえば、値プロパティのみを指定すると、その値がラベルとしても使用されます。

このようにする必要があります。

return 
     {    label: v.Mobile + ' - ' + v.Name,,
          value: v.Name
     }
于 2013-02-05T06:59:05.227 に答える