автозаполнение jquery-ui с предложениями ASP MVC не отображаются - PullRequest
2 голосов
/ 01 июня 2010

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

Вот библиотеки js, которые я включаю:

<script type="text/javascript" language="javascript" src="/Scripts/jquery-1.4.1.js"></script>

<script type="text/javascript" language="javascript" src="/Scripts/jquery-ui-1.8.1.custom.min.js"></script>

 <link href="/Content/jquery-ui-1.8.1.custom.css" rel="stylesheet" type="text/css" />

а вот теги javascript и формы:

<script type="text/javascript">
    $(function () {

        $("#organization").autocomplete({
            source: function (request, response) {
                $.ajax({
                    url: '/Organization/OrganizationLookup',
                    dataType: "json",
                    data: {
                        limit: 12,
                        q: request.term
                    }
                })
            },
            minLength: 2
        });
    });
</script> 

<div class="ui-widget"> 
    <label for="organization">Organization: </label> 
    <input id="organization" /> 
</div> 

Я получаю ответ json, который выглядит разумно с моего контроллера:

[
  {
    "id":"Sector A",
    "value":"Sector A"
  },
  {
    "id":"Sector B",
    "value":"Sector B"
  },
  {
    "id":"Sector C",
    "value":"Sector C"
  }
]

Идентификатор и значение кажутся именами по умолчанию, которые ищет автозаполнение.

Но я совсем не радуюсь. Какие-нибудь мысли?

Ответы [ 2 ]

4 голосов
/ 01 июня 2010

Не проблема здесь - вы должны поставить CSS перед Javascript. Всегда.

Вы ничего не делаете с возвращаемым значением. Вам нужно использовать функцию обратного вызова, чтобы взять эти данные и что-то с ними сделать. (Параметр «success:», я считаю).

2 голосов
/ 01 июня 2010

Благодаря предложению Хогана, я добавил следующую функцию обратного вызова к параметру успеха, и мне было хорошо идти:

 success: function (data) {
                          response($.map(data, function (item) {
                              return {
                                  label: item.label,
                                  value: item.value
                              }
                          }))
...