0

アクションは JSONResult を返し、コンテンツは正しいです。オートコンプリート コードで何かを見逃しましたか?

HTML :

<input type="text" class="span12" id="mytextbox" />

JavaScript:

<script>
    $(document).ready(function () {
        $("#mytextbox").autocomplete({
            minLength: 2,
            source: function(request,response) {
                $.ajax({
                    url: "MyController/MyAction",
                    type: "POST",
                    dataType: "json",
                    data: { term: request.term },
                    success: function (data) {
                        response($.map(data, function (item) {
                            return { firstname: item.FirstName, lastname: item.LastName, code: item.Code };
                        })) 
                    }
                })
            },
            messages: {
                noResults: "", results: ""
            }
        })
        .data("ui-autocomplete")._renderItem = function (ul, item) {
            return $("<li>")
              .append("<a>" + item.firstname + "<br>" + item.lastname + "</a>")
              .appendTo(ul);
        };
    })
  </script>
4

1 に答える 1

0

次のコードは機能します。ここでは、availableTags が ajax を置き換えます。

<script>
    $(document).ready(function () {
      var availableTags = [
      "ActionScript",
      "AppleScript",
      "Asp",
      "BASIC"];

        $("#mytextbox").autocomplete({
            minLength: 2,
            source: availableTags,
            messages: {
                noResults: "", results: ""
            }
        }).data("ui-autocomplete").renderItem = function (ul, item) {
        return $("<li>")
          .append("<a>" + item.firstname + "<br>" + item.lastname + "</a>")
          .appendTo(ul);
    };
    });
</script>

これは役立つかもしれません: http://api.jquery.com/jQuery.data/#jQuery-data-element

アップデート:

問題は次の行です。

.data("ui-autocomplete").renderItem = function (ul, item) {

あなたが持っている

.data("ui-autocomplete").**_**renderItem = function (ul, item) {
于 2013-05-20T21:06:30.760 に答える