jQuery автозаполнение и getJSON - PullRequest
0 голосов
/ 06 мая 2011

Я хочу использовать плагин автозаполнения jquery в сотрудничестве с jquery GetJson На моей странице клиента у меня есть следующий код:

<script>
          $(document).ready(function () {
              var test;
              $.getJSON("getData.aspx", function (json) {
                  alert("function dome");
test=json;
              });
              $("input#autocomplete").autocomplete({
                  source: test
              });
          });

      </script>

и мой метод get_ata.aspx Page_Load содержит следующее:

protected void Page_Load(object sender, EventArgs e)
        {
            List<string> test = new List<string>() { "Java", "Javascript", "sss", "sqre" };
            StringBuilder sb = new StringBuilder();
            JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
            jsSerializer.Serialize(test, sb);
            Response.Clear();
            Response.ContentType = "application/json";
            Response.Write(test.ToString());

        }

почему даже предупреждение ("функция выполнена") не выполняется? Почему у меня не работает автозаполнение? Может кто-нибудь помочь мне?

Ответы [ 2 ]

2 голосов
/ 06 мая 2011

Попробуйте изменить это, чтобы сделать это:

 $(document).ready(function () {
      $.getJSON("getData.aspx", null, function (json) {
          alert("function dome");
          $("input#autocomplete").autocomplete({
              source: json
          });
      });              
  });
0 голосов
/ 06 мая 2011

Вы не можете использовать AJAX таким образом, поскольку у вас нет возможности узнать, когда запрос вернется.Вам необходимо выполнить свои действия в режиме обратного вызова:

$.getJSON("getData.aspx", {}, function (json) {
  $("input#autocomplete").autocomplete({ source: json });
});

Кроме того, вы можете напрямую использовать удаленный источник данных, не вызывая $.getJson:

$("input#autocomplete").autocomplete({ source: 'getData.aspx' });

Недостатки этого подходав том, что он будет работать асинхронно в любое время, когда ему нужно получить обновленный набор данных.Первый подход лучше, если у вас есть небольшой фиксированный набор данных, второй подход лучше, если у вас большой набор данных с результатами, которые необходимо отфильтровать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...