getJSON как установить данные в массив? - PullRequest
1 голос
/ 14 февраля 2012

Я программист-любитель, поэтому будьте спокойны со мной.Я пытаюсь вызвать getJson только один раз, чтобы вытащить массив, а затем использовать автозаполнение jquery в качестве источника.Кажется, этот код никогда не вызывает обработчик.

<script>   

$(function () {
        var availableTags[];
        $.getJSON("./Handler.ashx", function(data) {
            availableTags = data;
        });

        $("#TextBox3").autocomplete({
            source: availableTags
        });
    });
</script>

приведенный ниже код работает, но я не хочу, чтобы js каждый раз вызывал обработчик.

<script>        
$(function () {
        $("#TextBox3").autocomplete({
            source: "./Handler.ashx",
            minLength: 3,
            select: function (event, ui) {
                $(this).val(ui.item.value);
            }
        });
    });

</script>

Ответы [ 2 ]

2 голосов
/ 14 февраля 2012

Попробуйте что-то вроде этого:

<script>   

$(function () {
        $.getJSON("./Handler.ashx", function(data) {
            $("#TextBox3").autocomplete({
                source: data
            });
        });           
    });
</script>
0 голосов
/ 14 февраля 2012

AJAX-вызов асинхронный, поэтому вы пытаетесь использовать данные до их поступления. Используйте данные внутри функции обратного вызова:

$(function () {
  $.getJSON("./Handler.ashx", function(data) {
    $("#TextBox3").autocomplete({
      source: data
    });
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...