2010-12-19 3 views
1
$(function() { 
     function log(message) { 
      $("<div/>").text(message).prependTo("#log"); 
      $("#log").attr("scrollTop", 0); 
     } 

     $("#city").autocomplete({ 
      source: function(request, response) { 
       $.ajax({ 
        url: "http://ws.geonames.org/searchJSON", 
        dataType: "jsonp", 
        data: { 
         featureClass: "P", 
         style: "full", 
         maxRows: 12, 
         name_startsWith: request.term 
        }, 
        success: function(data) { 
         response($.map(data.geonames, function(item) { 
          return { 
           label: item.name + (item.adminName1 ? ", " + item.adminName1 : "") + ", " + item.countryName, 
           value: item.name 
          } 
         })); 
        } 
       }); 
      }, 
      minLength: 2, 
      select: function(event, ui) { 
       log(ui.item ? 
        "Selected: " + ui.item.label : 
        "Nothing selected, input was " + this.value); 
      }, 
      open: function() { 
       $(this).removeClass("ui-corner-all").addClass("ui-corner-top"); 
      }, 
      close: function() { 
       $(this).removeClass("ui-corner-top").addClass("ui-corner-all"); 
      } 
     }); 
    }); 
    </script> 



<div class="demo"> 

<div class="ui-widget"> 
    <label for="city">Your city: </label> 
    <input id="city" /> 
    Powered by <a href="http://geonames.org">geonames.org</a> 
</div> 

<div class="ui-widget" style="margin-top:2em; font-family:Arial"> 
    Result: 
    <div id="log" style="height: 200px; width: 300px; overflow: auto;" class="ui-widget-content"></div> 
</div> 

</div> 

ich ein Bild in das jQuery Autocomplete-Label einfügen will aber das Bild src ausgegeben als Text innerhalb des Etiketts.Möchten Bild in jQuery Autocomplete-Label einfügen, aber das Bild src ausgegeben als Text

Ich versuchte, die success Funktion wie folgt ändern:

success: function(data) { 
    response($.map(data.geonames, function(item) { 
     return { 
      label: item.name + "<img src='/images/glif.png'/>" + (item.adminName1 ? ", " + item.adminName1 : "") + ", " + item.countryName, 
      value: item.name 
     } 
    })); 
} 

Antwort

3

Haben Sie das Extensible Autocomplete Plugin gesehen? Dadurch sollten Sie Markup im Label verwenden können.

+0

+1. Ich war mir dieser Erweiterungen nicht bewusst. Sehr cool. – charliegriefer