src/cm/media/js/lib/yui/yui_3.10.3/docs/autocomplete/index.html
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 525 89ef5ed3c48b
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
<!DOCTYPE html>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
<html lang="en">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
<head>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
    <meta charset="utf-8">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
    <title>AutoComplete</title>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=PT+Sans:400,700,400italic,700italic">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
    <link rel="stylesheet" href="../../build/cssgrids/cssgrids-min.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
    <link rel="stylesheet" href="../assets/css/main.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
    <link rel="shortcut icon" type="image/png" href="../assets/favicon.png">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
    <script src="../../build/yui/yui-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
</head>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
<body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
<!--
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
<a href="https://github.com/yui/yui3"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
-->
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
<div id="doc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
    <div id="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
        <h1><img src="http://yuilibrary.com/img/yui-logo.png"></h1>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
        <a href="#toc" class="jump">Jump to Table of Contents</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
            <h1>AutoComplete</h1>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
    <div class="yui3-g">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
        <div class="yui3-u-3-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
            <div id="main">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
                <div class="content"><div class="intro">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
<img src="../assets/autocomplete/img/autocomplete-01.png" alt="Screenshot of the AutoComplete list widget" style="border: 1px solid #bfbfbf; float:right; height:161px; margin: 0 0 8px 8px; width:272px;">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
The AutoComplete widget provides a flexible, configurable, and accessible implementation of the <a href="http://developer.yahoo.com/ypatterns/selection/autocomplete.html">AutoComplete design pattern</a>, which offers suggestions or provides some other form of filtering or completion as a user types text in an input field.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
In addition to the core logic for filtering and completion, AutoComplete also provides options for custom filtering, highlighting, and formatting of results; delimited queries; result retrieval from a variety of local and remote sources including <a href="http://developer.yahoo.com/yql/">YQL</a>, JSONP, and XHR; and more.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
AutoComplete is also built to be modular and easy to extend so that it can be used as the basis for custom implementations and widgets.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
<h2 id="getting-started">Getting Started</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
To include the source files for AutoComplete and its dependencies, first load
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
the YUI seed file if you haven't already loaded it.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
<pre class="code prettyprint">&lt;script src=&quot;http:&#x2F;&#x2F;yui.yahooapis.com&#x2F;3.10.3&#x2F;build&#x2F;yui&#x2F;yui-min.js&quot;&gt;&lt;&#x2F;script&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
Next, create a new YUI instance for your application and populate it with the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
modules you need by specifying them as arguments to the <code>YUI().use()</code> method.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
YUI will automatically load any dependencies required by the modules you
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
specify.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
<pre class="code prettyprint">&lt;script&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
&#x2F;&#x2F; Create a new YUI instance and populate it with the required modules.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
YUI().use(&#x27;autocomplete&#x27;, function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
    &#x2F;&#x2F; AutoComplete is available and ready for use. Add implementation
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
    &#x2F;&#x2F; code here.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
&lt;&#x2F;script&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
For more information on creating YUI instances and on the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
<a href="http://yuilibrary.com/yui/docs/api/classes/YUI.html#method_use"><code>use()</code> method</a>, see the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
documentation for the <a href="../yui/index.html">YUI Global Object</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
<h2 id="using-autocomplete">Using AutoComplete</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
<h3 id="quick-start">Quick Start</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
In a hurry? Here's how to get up and running with AutoComplete in just a few lines of code. The following examples demonstrate how to use AutoComplete with several common result sources. Pick the one that most closely matches your needs (you only need one!).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
<pre class="code prettyprint">YUI().use(&#x27;autocomplete&#x27;, &#x27;autocomplete-highlighters&#x27;, function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
  &#x2F;&#x2F; Add the yui3-skin-sam class to the body so the default
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
  &#x2F;&#x2F; AutoComplete widget skin will be applied.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
  Y.one(&#x27;body&#x27;).addClass(&#x27;yui3-skin-sam&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
  &#x2F;&#x2F; The following examples demonstrate some of the different
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
  &#x2F;&#x2F; result sources AutoComplete supports. You only need to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
  &#x2F;&#x2F; pick one, you don&#x27;t need them all. Assume the &#x27;#ac-input&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
  &#x2F;&#x2F; element id used in this example refers to an &lt;input&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
  &#x2F;&#x2F; element on the page.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
  &#x2F;&#x2F; Array source. Replace the example array with any array.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
  Y.one(&#x27;#ac-input&#x27;).plug(Y.Plugin.AutoComplete, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
    resultHighlighter: &#x27;phraseMatch&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
    source: [&#x27;foo&#x27;, &#x27;bar&#x27;, &#x27;baz&#x27;]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
  });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
  &#x2F;&#x2F; YQL source. Leave the {query} placeholder as is; AutoComplete
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
  &#x2F;&#x2F; will replace it automatically.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
  Y.one(&#x27;#ac-input&#x27;).plug(Y.Plugin.AutoComplete, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
    resultHighlighter: &#x27;phraseMatch&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
    source: &#x27;select * from search.suggest where query=&quot;{query}&quot;&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
  });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
  &#x2F;&#x2F; JSONP URL source. Leave the {query} and {callback} placeholders
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
  &#x2F;&#x2F; as is; AutoComplete will replace them automatically.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
  Y.one(&#x27;#ac-input&#x27;).plug(Y.Plugin.AutoComplete, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
    resultHighlighter: &#x27;phraseMatch&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
    source: &#x27;http:&#x2F;&#x2F;example.com&#x2F;search.jsonp?q={query}&amp;callback={callback}&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
  });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
  &#x2F;&#x2F; XHR URL source (no callback). Leave the {query} placeholder
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
  &#x2F;&#x2F; as is; AutoComplete will replace it automatically.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
  Y.one(&#x27;#ac-input&#x27;).plug(Y.Plugin.AutoComplete, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
    resultHighlighter: &#x27;phraseMatch&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
    source: &#x27;http:&#x2F;&#x2F;example.com&#x2F;search.json?q={query}&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
  });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
In most cases, one of these examples should be enough to get you started. For a more complete discussion of how to use, configure, and customize AutoComplete, read on.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
<h3 id="instantiating-autocomplete">Instantiating AutoComplete</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
There are two ways to instantiate an AutoComplete widget: you can plug <code>Y.Plugin.AutoComplete</code> into an existing <code>Y.Node</code> instance, or you can create a new standalone instance of the <code>Y.AutoComplete</code> class.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
Both instantiation methods provide the same AutoComplete functionality, so feel
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
free to use whichever one you prefer. Throughout this guide and in the examples,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
the plugin method is used most, but the class method will work equally well in all cases.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
<strong>Note:</strong> be sure to add the <code>yui3-skin-sam</code> classname to the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
page's <code>&lt;body&gt;</code> element or to a parent element of the widget in order to apply
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
the default CSS skin. See <a href="http://yuilibrary.com/yui/docs/tutorials/skins/">Understanding Skinning</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
<pre class="code prettyprint">&lt;body class=&quot;yui3-skin-sam&quot;&gt; &lt;!-- You need this skin class --&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
See the <a href="#skinning">Skinning</a> section below for more info.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
<h4 id="as-a-plugin">As a Plugin</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
To instantiate AutoComplete as a plugin, use the <code>plug()</code> method to attach it to an existing <code>Y.Node</code> instance. The node must be an <code>&lt;input&gt;</code> or <code>&lt;textarea&gt;</code> element. You may also provide a configuration object containing AutoComplete config attributes, but this isn't required.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
<pre class="code prettyprint">Y.one(&#x27;#ac-input&#x27;).plug(Y.Plugin.AutoComplete);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
In most cases, you'll at least want to specify a <code>source</code> attribute, which tells AutoComplete where to get results. The simplest type of source is an array of strings.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
<pre class="code prettyprint">Y.one(&#x27;#ac-input&#x27;).plug(Y.Plugin.AutoComplete, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
  source: [&#x27;friends&#x27;, &#x27;Romans&#x27;, &#x27;countrymen&#x27;]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
Once you've plugged AutoComplete into a node, you can access the AutoComplete instance through the node's <code>ac</code> property.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
<pre class="code prettyprint">var inputNode = Y.one(&#x27;#ac-input&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
inputNode.plug(Y.Plugin.AutoComplete);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
inputNode.ac.set(&#x27;source&#x27;, [&#x27;friends&#x27;, &#x27;Romans&#x27;, &#x27;countrymen&#x27;]);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
When using AutoComplete as a plugin, the AutoComplete widget markup will be rendered automatically as soon as it's plugged into a node instance. If you'd like to defer rendering until a time of your choosing, set the <code>render</code> config attribute to <code>false</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
<pre class="code prettyprint">&#x2F;&#x2F; Don&#x27;t render immediately.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
Y.one(&#x27;#ac-input&#x27;).plug(Y.Plugin.AutoComplete, {render: false});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
&#x2F;&#x2F; Render only when I say so.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
Y.one(&#x27;#ac-input&#x27;).ac.render();</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
By default, the AutoComplete widget markup is appended to the parent node of the node it's plugged into. If you would rather render the markup inside a different parent, pass a CSS selector or <code>Y.Node</code> instance to the <code>render</code> config attribute or the <code>render()</code> method.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
<pre class="code prettyprint">&#x2F;&#x2F; Render inside the #ac-parent node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
Y.one(&#x27;#ac-input&#x27;).plug(Y.Plugin.AutoComplete, {render: &#x27;#ac-parent&#x27;});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
For more on available configuration attributes, see the <a href="#configuring-autocomplete">Configuring AutoComplete</a> section below. For more on the different result sources AutoComplete supports, see <a href="#result-sources">Result Sources</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
<h4 id="as-a-class">As a Class</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
To instantiate AutoComplete as a class, create a new instance of <code>Y.AutoComplete</code> and specify an <code>inputNode</code> config value. The <code>inputNode</code> must be a CSS selector, <code>Y.Node</code> instance, or DOM element referencing an <code>&lt;input&gt;</code> or <code>&lt;textarea&gt;</code> element that already exists on the page.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
<pre class="code prettyprint">var ac = new Y.AutoComplete({inputNode: &#x27;#ac-input&#x27;});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
<code>inputNode</code> is the only required configuration attribute, but in most cases you'll also want to specify a <code>source</code> attribute, which tells AutoComplete where to get results. The simplest type of source is an array of strings.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
<pre class="code prettyprint">var ac = new Y.AutoComplete({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
  inputNode: &#x27;#ac-input&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
  source   : [&#x27;friends&#x27;, &#x27;Romans&#x27;, &#x27;countrymen&#x27;]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
When instantiated as a class, the AutoComplete widget markup is not rendered automatically. To render it, either set the <code>render</code> config attribute to <code>true</code> at instantiation time or call the AutoComplete instance's <code>render()</code> method later.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
<pre class="code prettyprint">&#x2F;&#x2F; Render immediately.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
var ac = new Y.AutoComplete({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
  inputNode: &#x27;#ac-input&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
  render   : true
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
&#x2F;&#x2F; Don&#x27;t render immediately.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
var ac = new Y.AutoComplete({inputNode: &#x27;#ac-input&#x27;});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
&#x2F;&#x2F; Render only when I say so.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
ac.render();</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
By default, the AutoComplete widget markup is appended to the parent node of the <code>inputNode</code> when the widget is rendered. If you would rather render the markup inside a different parent, pass a CSS selector or <code>Y.Node</code> instance to the <code>render</code> config attribute or the <code>render()</code> method.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
<pre class="code prettyprint">&#x2F;&#x2F; Render inside the #ac-parent node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
var ac = new Y.AutoComplete({inputNode: &#x27;#ac-input&#x27;});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
ac.render(&#x27;#ac-parent&#x27;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
For more on available configuration attributes, see the <a href="#configuring-autocomplete">Configuring AutoComplete</a> section below. For more on the different result sources AutoComplete supports, see <a href="#result-sources">Result sources</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
<h3 id="dom-structure">DOM Structure</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
When the AutoComplete widget is rendered, it will add the CSS class <code>yui3-aclist-input</code> to the specified <code>inputNode</code>, along with several ARIA attributes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
<pre class="code prettyprint">&lt;!-- Before AutoComplete is rendered --&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
&lt;input id=&quot;ac-input&quot; type=&quot;text&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
&lt;!-- After AutoComplete is rendered --&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
&lt;input id=&quot;ac-input&quot; type=&quot;text&quot; class=&quot;yui3-aclist-input&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
    aria-autocomplete=&quot;list&quot; aria-expanded=&quot;false&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
    aria-owns=&quot;yui_3_3_0_1_129140941365181&quot; autocomplete=&quot;off&quot;&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
AutoComplete will also add markup for the list widget. By default, the list markup will be appended to the parent node that contains the <code>inputNode</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
<pre class="code prettyprint">&lt;!-- AutoCompleteList widget markup with sample results --&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
&lt;div id=&quot;yui_3_3_0_1_129140941365147&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
    class=&quot;yui3-widget yui3-aclist yui3-widget-positioned yui3-aclist-hidden&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
    style=&quot;position: absolute; width: 254px; left: 13px; top: 32px;&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
    aria-hidden=&quot;true&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
  &lt;div id=&quot;yui_3_3_0_1_129140941365150&quot; class=&quot;yui3-aclist-content&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
    &lt;ul class=&quot;yui3-aclist-list&quot; id=&quot;yui_3_3_0_1_129140941365181&quot; role=&quot;listbox&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
      &lt;li class=&quot;yui3-aclist-item&quot; id=&quot;yui_3_3_0_1_1291409413651452&quot; role=&quot;option&quot;&gt;friends&lt;&#x2F;li&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
      &lt;li class=&quot;yui3-aclist-item&quot; id=&quot;yui_3_3_0_1_1291409413651454&quot; role=&quot;option&quot;&gt;Romans&lt;&#x2F;li&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
      &lt;li class=&quot;yui3-aclist-item&quot; id=&quot;yui_3_3_0_1_1291409413651456&quot; role=&quot;option&quot;&gt;countrymen&lt;&#x2F;li&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
    &lt;&#x2F;ul&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
  &lt;&#x2F;div&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
&lt;&#x2F;div&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
For information on skinning the AutoComplete widget, see the <a href="#skinning">Skinning</a> section below.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
<h3 id="configuring-autocomplete">Configuring AutoComplete</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   298
Except for <code>inputNode</code>, all configuration attributes are optional. These lists only contain the most interesting attributes. For a complete list of all attributes, please refer to the <a href="http://yuilibrary.com/yui/docs/api/modules/autocomplete.html">API docs</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   299
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
<h4 id="base-config-attributes">Base Config Attributes</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
These attributes are provided by <code>AutoCompleteBase</code>, which is the core foundation for the AutoComplete widget. They are available on all AutoComplete instances.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
<table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
  <thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
      <th>Attribute</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   311
      <th>Default</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   312
      <th>Description</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   313
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   314
  </thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   315
  <tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   316
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   317
      <td><code>allowBrowserAutocomplete</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   318
      <td><code>false</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   319
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   320
        Whether or not to enable the browser's built-in autocomplete functionality for input fields.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   321
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   322
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   323
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   324
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   325
      <td><code>enableCache</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   326
      <td><code>true</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   327
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   328
        Whether or not to enable in-memory caching in result sources that support it. This can significantly improve performance for result sources that make remote requests (like JSONP, YQL, and XHR), so it's best to leave this enabled unless you have a good reason to disable it.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   329
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   330
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   331
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   332
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   333
      <td><code>inputNode</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   334
      <td><em>none</em></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   335
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   336
        <strong>Required</strong>. <code>&lt;input&gt;</code> or <code>&lt;textarea&gt;</code> node to monitor for changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   337
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   338
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   339
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   340
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   341
      <td><code>maxResults</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   342
      <td>0</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   343
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   344
        Maximum number of results to display. A value of <code>0</code> or less will allow an unlimited number of results.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   345
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   346
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   347
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   348
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   349
      <td><code>minQueryLength</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   350
      <td>1</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   351
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   352
        Minimum number of characters that must be entered before a <code>query</code> event will be fired. A value of <code>0</code> allows empty queries; a negative value will effectively disable all <code>query</code> events and turn AutoComplete off.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   353
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   354
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   355
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   356
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   357
      <td><code>queryDelay</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   358
      <td>100</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   359
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   360
        <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   361
        Number of milliseconds to wait after user input before triggering a <code>query</code> event. If new input occurs before this delay is over, the previous input event will be ignored and a new delay will begin.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   362
        </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   363
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   364
        <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   365
        This is useful to throttle queries to a remote data source, and to avoid distracting the user by showing them less relevant results before their typing pauses.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   366
        </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   367
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   368
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   369
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   370
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   371
      <td><code>queryDelimiter</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   372
      <td><code>null</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   373
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   374
        Query delimiter string. When a delimiter is configured, the input value will be split on the delimiter, and only the last portion will be used in autocomplete queries and updated when the <code>query</code> attribute is modified. See <a href="#using-query-delimiters">Using Query Delimiters</a> below for details.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   375
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   376
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   377
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   378
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   379
      <td><code>requestTemplate</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   380
      <td><code>null</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   381
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   382
        <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   383
        Source request template. This can be a function that accepts a query as a parameter and returns a string, or it can be a string containing the placeholder "{query}", which will be replaced with the URI-encoded query. The resulting string will be appended to the request URL when the <code>source</code> attribute is set to a remote DataSource, JSONP URL, or XHR URL.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   384
        </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   385
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   386
        <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   387
        When the <code>source</code> attribute is set to a YQL query, the <code>requestTemplate</code> value will be inserted in place of the "{request}" placeholder rather than being appended to the YQL query. This can be useful if you need to double-encode query values used in YQL queries.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   388
        </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   389
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   390
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   391
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   392
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   393
      <td><code>resultFilters</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   394
      <td><code>[]</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   395
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   396
        Result filter name, function, or array of filter names and/or functions. See <a href="#filtering-results">Filtering Results</a> for details.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   397
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   398
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   399
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   400
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   401
      <td><code>resultFormatter</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   402
      <td><code>null</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   403
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   404
        Function that should be used to format results. See <a href="#writing-result-formatters">Writing Result Formatters</a> for details.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   405
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   406
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   407
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   408
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   409
      <td><code>resultHighlighter</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   410
      <td><code>null</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   411
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   412
        Result highlighter name or function. See <a href="#highlighting-results">Highlighting Results</a> for details.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   413
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   414
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   415
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   416
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   417
      <td><code>resultListLocator</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   418
      <td><code>null</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   419
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   420
        Locator string or function that should be used to extract an array of results from a non-array response. See <a href="#locating-results">Locating Results</a> for details.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   421
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   422
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   423
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   424
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   425
      <td><code>resultTextLocator</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   426
      <td><code>null</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   427
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   428
        Locator string or function that should be used to extract a plain text string from a non-string result item. See <a href="#locating-results">Locating Results</a> for details.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   429
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   430
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   431
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   432
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   433
      <td><code>source</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   434
      <td><code>null</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   435
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   436
        Source for autocomplete results. The following source types are supported: Array, DataSource, Function, Object, JSONP URL (string), XHR URL (string), YQL query (string). For details on each source type, see <a href="#result-sources">Result Sources</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   437
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   438
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   439
  </tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   440
</table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   441
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   442
<h4 id="list-config-attributes">List Config Attributes</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   443
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   444
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   445
These attributes are provided by <code>AutoCompleteList</code>, which is the implementation for the AutoComplete list widget. They are available on all instances of <code>AutoComplete</code> or <code>AutoCompleteList</code>, as well as on instances of the AutoComplete plugin.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   446
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   447
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   448
<table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   449
  <thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   450
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   451
      <th>Attribute</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   452
      <th>Default</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   453
      <th>Description</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   454
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   455
  </thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   456
  <tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   457
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   458
      <td><code>activateFirstItem</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   459
      <td><code>false</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   460
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   461
        If <code>true</code>, the first item in the result list will be activated by default when the list is initially displayed and when results change.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   462
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   463
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   464
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   465
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   466
      <td><code>align</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   467
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   468
<pre><code>{
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   469
  node: <em>inputNode</em>,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   470
  points: ['tl', 'bl']
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   471
}</code></pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   472
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   473
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   474
        Widget alignment config. The <code>node</code> property is the element with which the result list should be aligned, and the <code>points</code> property specifies (by default) that the top left of the list should be aligned with the bottom left of the <code>inputNode</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   475
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   476
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   477
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   478
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   479
      <td><code>alwaysShowList</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   480
      <td><code>false</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   481
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   482
        If <code>true</code>, the list will remain visible even when there are no results to display and the <code>inputNode</code> is not focused.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   483
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   484
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   485
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   486
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   487
      <td><code>circular</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   488
      <td><code>true</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   489
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   490
        If <code>true</code>, keyboard navigation will wrap around to the opposite end of the list when navigating past the first or last item.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   491
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   492
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   493
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   494
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   495
      <td><code>scrollIntoView</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   496
      <td><code>false</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   497
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   498
        If <code>true</code>, the viewport will be scrolled when necessary to ensure that the active list item is visible.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   499
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   500
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   501
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   502
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   503
      <td><code>tabSelect</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   504
      <td><code>true</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   505
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   506
        If <code>true</code>, pressing the tab key while the list is visible will select the active item, if any.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   507
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   508
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   509
  </tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   510
</table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   511
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   512
<h4 id="aligning-the-list">Aligning the List</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   513
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   514
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   515
By default, the autocomplete dropdown list will be automatically aligned with the bottom left corner of the input node it's attached to, and its width will be set to match the input node's. You can change the alignment of the list by specifying a custom value for the <code>align</code> attribute.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   516
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   517
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   518
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   519
For example, to align the top left of the list with the top left of a particular node on the page (such as its container):
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   520
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   521
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   522
<pre class="code prettyprint">Y.one(&#x27;#ac-input&#x27;).plug(Y.Plugin.AutoComplete, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   523
  align: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   524
      node  : &#x27;#container&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   525
      points: [&#x27;tl&#x27;, &#x27;tl&#x27;]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   526
  }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   527
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   528
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   529
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   530
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   531
See the <a href="http://yuilibrary.com/yui/docs/api/classes/WidgetPositionAlign.html">WidgetPositionAlign API docs</a> for more details on alignment configs.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   532
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   533
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   534
<h4 id="using-query-delimiters">Using Query Delimiters</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   535
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   536
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   537
Using the <code>queryDelimiter</code> attribute, you can specify a delimiter string that should be used to split the value of the input field.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   538
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   539
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   540
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   541
When a delimiter is set, the <code>query</code> attribute will only reflect the last delimited item in the input value, and only this item will be used for completion (the full input value will still be available from the <code>value</code> attribute).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   542
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   543
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   544
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   545
For example, if <code>queryDelimiter</code> is set to <code>&#x27;,&#x27;</code> and the input node's value is <code>&#x27;foo, bar, baz&#x27;</code>, then the value of the <code>query</code> attribute will be <code>&#x27;baz&#x27;</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   546
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   547
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   548
<pre class="code prettyprint">var inputNode = Y.one(&#x27;#ac-input&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   549
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   550
inputNode.set(&#x27;value&#x27;, &#x27;foo, bar, baz&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   551
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   552
inputNode.plug(Y.Plugin.AutoComplete, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   553
  queryDelimiter: &#x27;,&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   554
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   555
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   556
Y.log(inputNode.ac.get(&#x27;query&#x27;)); &#x2F;&#x2F; =&gt; &#x27;baz&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   557
Y.log(inputNode.get(&#x27;value&#x27;));    &#x2F;&#x2F; =&gt; &#x27;foo, bar, baz&#x27;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   558
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   559
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   560
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   561
When the user selects an item from the result list, the selected item will replace only the last delimited item in the input value rather than replacing the entire value, and another delimiter string will be automatically appended to the value so that the user can continue typing and getting suggestions.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   562
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   563
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   564
<h3 id="autocomplete-events">AutoComplete Events</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   565
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   566
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   567
These lists only contain the most interesting events. For a complete list, please refer to the <a href="http://yuilibrary.com/yui/docs/api/modules/autocomplete.html">API docs</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   568
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   569
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   570
<h4 id="base-events">Base Events</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   571
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   572
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   573
These events are provided by <code>AutoCompleteBase</code>, which is the core foundation for the AutoComplete widget. They are available on all AutoComplete instances.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   574
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   575
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   576
<table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   577
  <thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   578
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   579
      <th>Event</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   580
      <th>When</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   581
      <th>Payload</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   582
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   583
  </thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   584
  <tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   585
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   586
      <td><code>clear</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   587
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   588
        The query has been completely cleared or no longer meets the minimum query length requirement.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   589
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   590
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   591
        <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   592
          <dt><code>prevVal</code> <i>(String)</i></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   593
          <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   594
            Value of the query before it was cleared.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   595
          </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   596
        </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   597
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   598
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   599
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   600
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   601
      <td><code>query</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   602
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   603
        The value of the input field has changed and the new value meets the criteria necessary to generate an autocomplete query. Can be prevented to stop the query from being sent.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   604
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   605
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   606
        <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   607
          <dt><code>inputValue</code> <i>(String)</i></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   608
          <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   609
            Full contents of the text input field or textarea that generated the query.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   610
          </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   611
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   612
          <dt><code>query</code> <i>(String)</i></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   613
          <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   614
            The query itself. This is the string that will be sent to the result source to request results. It may or may not be the same as <code>inputValue</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   615
          </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   616
        </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   617
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   618
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   619
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   620
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   621
      <td><code>results</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   622
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   623
        Results are received from the result source. If no source has been set, this event will not fire.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   624
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   625
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   626
        <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   627
          <dt><code>data</code> <i>(Array|Object)</i></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   628
          <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   629
            Raw, unfiltered result data from the source (if available).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   630
          </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   631
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   632
          <dt><code>query</code> <i>(String)</i></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   633
          <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   634
            Query that generated these results.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   635
          </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   636
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   637
          <dt><code>results</code> <i>(Array)</i></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   638
          <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   639
            Array of filtered, formatted, and highlighted results. Each item in the array is an object with the following properties:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   640
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   641
            <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   642
              <dt><code>display</code> <i>(Node|HTMLElement|String)</i></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   643
              <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   644
                Formatted result HTML suitable for display to the user. If no custom formatter is set, this will be an HTML-escaped version of the string in the <code>text</code> property.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   645
              </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   646
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   647
              <dt><code>highlighted</code> <i>(String)</i></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   648
              <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   649
                Highlighted (but not formatted) result text. This property will
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   650
                only be set if a highlighter is in use.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   651
              </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   652
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   653
              <dt><code>raw</code> <i>(mixed)</i></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   654
              <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   655
                Raw, unformatted result in whatever form it was provided by the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   656
                <code>source</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   657
              </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   658
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   659
              <dt><code>text</code> <i>(String)</i></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   660
              <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   661
                Plain text version of the result, suitable for being inserted
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   662
                into the value of a text input field or textarea when the result
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   663
                is selected by a user. This value is not HTML-escaped and should
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   664
                not be inserted into the page using innerHTML.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   665
              </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   666
            </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   667
          </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   668
        </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   669
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   670
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   671
  </tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   672
</table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   673
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   674
<h4 id="list-events">List Events</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   675
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   676
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   677
These events are provided by <code>AutoCompleteList</code>, which is the implementation for the AutoComplete list widget. They are available on all instances of <code>AutoComplete</code> or <code>AutoCompleteList</code>, as well as on instances of the AutoComplete plugin.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   678
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   679
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   680
<table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   681
  <thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   682
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   683
      <th>Event</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   684
      <th>When</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   685
      <th>Payload</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   686
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   687
  </thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   688
  <tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   689
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   690
      <td><code>activeItemChange</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   691
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   692
        The active list item (the item currently pre-selected via the keyboard) changes. When the user presses enter, this is the item that will become selected.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   693
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   694
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   695
        <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   696
          <dt><code>prevVal</code> <i>(Node|null)</i></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   697
          <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   698
            Node reference for the previously-active list item, or <code>null</code> if there wasn't one.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   699
          </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   700
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   701
          <dt><code>newVal</code> <i>(Node|null)</i></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   702
          <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   703
            Node reference for the new active list item, or <code>null</code> if the active item has been cleared.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   704
          </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   705
        </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   706
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   707
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   708
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   709
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   710
      <td><code>hoveredItemChange</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   711
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   712
        The hovered list item (the item currently being hovered over by the mouse) changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   713
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   714
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   715
        <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   716
          <dt><code>prevVal</code> <i>(Node|null)</i></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   717
          <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   718
            Node reference for the previously hovered list item, or <code>null</code> if there wasn't one.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   719
          </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   720
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   721
          <dt><code>newVal</code> <i>(Node|null)</i></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   722
          <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   723
            Node reference for the new hovered list item, or <code>null</code> if there is no hovered item.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   724
          </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   725
        </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   726
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   727
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   728
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   729
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   730
      <td><code>select</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   731
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   732
        A result is selected from the autocomplete list, typically via a keyboard action or a mouse click.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   733
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   734
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   735
        <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   736
          <dt><code>itemNode</code> <i>(Node)</i></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   737
          <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   738
            Node reference for the list item that was selected.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   739
          </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   740
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   741
          <dt><code>result</code> <i>(Object)</i></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   742
          <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   743
            Result object for the selected result. See the docs for the <code>results</code> event for a description of the result object structure.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   744
          </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   745
        </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   746
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   747
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   748
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   749
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   750
      <td><code>visibleChange</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   751
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   752
        The visibility of the result list changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   753
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   754
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   755
        <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   756
          <dt><code>prevVal</code> <i>(Boolean)</i></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   757
          <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   758
            Previous visibility of the list.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   759
          </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   760
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   761
          <dt><code>newVal</code> <i>(Boolean)</i></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   762
          <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   763
            New visibility of the list.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   764
          </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   765
        </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   766
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   767
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   768
  </tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   769
</table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   770
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   771
<h3 id="result-sources">Result Sources</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   772
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   773
<h4 id="arrayobject">Array/Object</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   774
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   775
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   776
Set the <code>source</code> attribute to an Array to use that array as the set of results for all queries. Combine this with one or more result filters to filter out results that aren't relevant for the current query.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   777
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   778
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   779
<pre class="code prettyprint">Y.one(&#x27;#ac-input&#x27;).plug(Y.Plugin.AutoComplete, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   780
  source: [&#x27;foo&#x27;, &#x27;bar&#x27;, &#x27;baz&#x27;]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   781
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   782
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   783
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   784
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   785
You can also set <code>source</code> to an Object. When the query matches one of the properties on the object, the value of that property will be used as the results for the query.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   786
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   787
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   788
<pre class="code prettyprint">Y.one(&#x27;#ac-input&#x27;).plug(Y.Plugin.AutoComplete, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   789
  source: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   790
    a: [&#x27;apple&#x27;, &#x27;airplane&#x27;, &#x27;awesome&#x27;],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   791
    b: [&#x27;banana&#x27;, &#x27;boat&#x27;, &#x27;boring&#x27;],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   792
    c: [&#x27;cherry&#x27;, &#x27;car&#x27;, &#x27;cacophonous&#x27;]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   793
  }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   794
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   795
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   796
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   797
<h4 id="datasource">DataSource</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   798
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   799
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   800
Any <a href="../datasource/index.html">YUI DataSource</a> instance may be used as a result source. This is useful if you want to share data between multiple components on a page, or if you need to parse data or apply a DataSchema in a way that isn't feasible with other AutoComplete sources.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   801
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   802
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   803
<pre class="code prettyprint">var ds = new Y.DataSource.IO({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   804
  source: &#x27;http:&#x2F;&#x2F;example.com&#x2F;search&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   805
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   806
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   807
Y.one(&#x27;#ac-input&#x27;).plug(Y.Plugin.AutoComplete, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   808
  requestTemplate: &#x27;?q={query}&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   809
  source: ds
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   810
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   811
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   812
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   813
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   814
In this example, the <code>requestTemplate</code> attribute is set to a string containing a <code>{query}</code> placeholder. On each query, the placeholder will be replaced with the URI-encoded query value, and the resulting request string will be appended to the DataSource's source URL, resulting in a final URL like <code>http:&#x2F;&#x2F;example.com&#x2F;search?q=foo</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   815
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   816
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   817
<h4 id="function">Function</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   818
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   819
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   820
Set the <code>source</code> attribute to a function to use that function as the result source. On each query, the function will be called with two arguments: the current query, and a callback function.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   821
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   822
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   823
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   824
If the function is synchronous, meaning that results are available immediately, then it should return an array of results:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   825
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   826
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   827
<pre class="code prettyprint">Y.one(&#x27;#ac-input&#x27;).plug(Y.Plugin.AutoComplete, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   828
  &#x2F;&#x2F; Synchronous source function.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   829
  source: function (query) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   830
    &#x2F;&#x2F; ...arbitrary logic here...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   831
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   832
    return [&#x27;foo&#x27;, &#x27;bar&#x27;, &#x27;baz&#x27;];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   833
  }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   834
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   835
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   836
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   837
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   838
If the function is asynchronous, meaning that it must make a network call or perform some other non-blocking activity from which it can't return results immediately, then an array of results should be passed to the provided callback function when the results become available, and the function should <em>not</em> return a value:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   839
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   840
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   841
<pre class="code prettyprint">Y.one(&#x27;#ac-input&#x27;).plug(Y.Plugin.AutoComplete, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   842
  &#x2F;&#x2F; Asynchronous source function.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   843
  source: function (query, callback) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   844
    &#x2F;&#x2F; Wait a little while without blocking execution, then provide results.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   845
    &#x2F;&#x2F; This simulates a non-blocking operation such as a JSONP or XHR request.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   846
    setTimeout(function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   847
      callback([&#x27;foo&#x27;, &#x27;bar&#x27;, &#x27;baz&#x27;]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   848
    }, 100);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   849
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   850
    &#x2F;&#x2F; Note that the source function doesn&#x27;t return a value.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   851
  }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   852
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   853
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   854
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   855
<h4 id="jsonpxhr-url">JSONP/XHR URL</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   856
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   857
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   858
Set the <code>source</code> attribute to a URL string to use that URL as the result source.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   859
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   860
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   861
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   862
The URL string must include a <code>{query}</code> placeholder. On each query, AutoComplete will replace this with the current query and will make a request to the URL.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   863
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   864
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   865
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   866
If the URL string includes a <code>{callback}</code> placeholder, it will be called using JSONP, and the <code>{callback}</code> placeholder will be replaced with the name of a dynamically generated JSONP callback function that AutoComplete will create. The server is expected to respond with a JavaScript value wrapped in a call to this callback function.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   867
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   868
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   869
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   870
If the URL string does not include a <code>{callback}</code> placeholder, it will be called using XHR (XMLHttpRequest). XHR URLs <em>must</em> abide by the <a href="https://developer.mozilla.org/en/Same_origin_policy_for_JavaScript">same origin policy</a> or the browser will refuse to send the request. The server is expected to respond with valid JSON data, which AutoComplete will attempt to parse.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   871
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   872
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   873
<pre class="code prettyprint">&#x2F;&#x2F; JSONP URL source.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   874
Y.one(&#x27;#ac-input&#x27;).plug(Y.Plugin.AutoComplete, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   875
  source: &#x27;http:&#x2F;&#x2F;example.com&#x2F;search.jsonp?q={query}&amp;callback={callback}&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   876
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   877
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   878
&#x2F;&#x2F; XHR URL source (no callback).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   879
Y.one(&#x27;#ac-input&#x27;).plug(Y.Plugin.AutoComplete, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   880
  source: &#x27;http:&#x2F;&#x2F;example.com&#x2F;search.json?q={query}&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   881
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   882
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   883
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   884
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   885
You may also optionally include a <code>{maxResults}</code> placeholder in the URL, which will be replaced with the value of the <code>maxResults</code> attribute (or 1000 if the <code>maxResults</code> attribute is less than or equal to 0).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   886
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   887
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   888
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   889
Responses from JSONP and XHR URL sources are automatically cached based on the query value for the duration of the pageview on a per-instance basis (in other words, every AutoComplete instance has its own separate cache).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   890
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   891
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   892
<h4 id="select-node"><code>&lt;select&gt;</code> Node</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   893
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   894
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   895
Set the <code>source</code> attribute to a <code>&lt;select&gt;</code> node to use its list of items as results. You'll also need to set the <code>resultTextLocator</code> attribute to 'text' or 'value' depending on what you want to use as the text of each result.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   896
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   897
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   898
<pre class="code prettyprint">Y.one(&#x27;#ac-input&#x27;).plug(Y.Plugin.AutoComplete, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   899
    resultTextLocator: &#x27;text&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   900
    source: Y.one(&#x27;#my-list&#x27;)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   901
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   902
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   903
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   904
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   905
Each result from a <code>&lt;select&gt;</code> source will be an object with the following properties:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   906
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   907
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   908
<dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   909
    <dt><code>html</code> <i>(String)</i></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   910
    <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   911
      <p>HTML content of the <code>&lt;option&gt;</code> element.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   912
    </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   913
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   914
    <dt><code>index</code> <i>(Number)</i></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   915
    <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   916
      <p>Index of the <code>&lt;option&gt;</code> element in the list.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   917
    </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   918
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   919
    <dt><code>node</code> <i>(Y.Node)</i></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   920
    <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   921
      <p>Node instance referring to the original <code>&lt;option&gt;</code> element.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   922
    </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   923
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   924
    <dt><code>selected</code> <i>(Boolean)</i></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   925
    <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   926
      <p>Whether or not this item is currently selected in the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   927
      <code>&lt;select&gt;</code> list.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   928
    </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   929
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   930
    <dt><code>text</code> <i>(String)</i></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   931
    <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   932
      <p>Text content of the <code>&lt;option&gt;</code> element.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   933
    </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   934
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   935
    <dt><code>value</code> <i>(String)</i></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   936
    <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   937
      <p>Value of the <code>&lt;option&gt;</code> element.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   938
    </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   939
</dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   940
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   941
<h4 id="yql-query">YQL Query</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   942
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   943
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   944
Set the <code>source</code> attribute to a <a href="http://developer.yahoo.com/yql/">YQL</a> query string to use that YQL query as the result source.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   945
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   946
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   947
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   948
The string may include a <code>{query}</code> placeholder. On each query, AutoComplete will replace this with the current query and will make a call to YQL to get results.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   949
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   950
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   951
<pre class="code prettyprint">Y.one(&#x27;#ac-input&#x27;).plug(Y.Plugin.AutoComplete, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   952
  source: &#x27;select * from search.suggest where query=&quot;{query}&quot;&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   953
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   954
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   955
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   956
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   957
You may use a <code>{request}</code> placeholder to insert the <code>requestTemplate</code> value rather than the raw query. This allows you to customize the query if desired (such as by double-escaping it, which is necessary for some YQL queries that embed URLs).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   958
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   959
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   960
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   961
You may also optionally include a <code>{maxResults}</code> placeholder in the YQL query, which will be replaced with the value of the <code>maxResults</code> attribute (or 1000 if the <code>maxResults</code> attribute is less than or equal to 0).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   962
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   963
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   964
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   965
AutoComplete does its best to automatically parse results out of YQL responses, but a wide variety of different YQL response formats are possible, so it may not always be possible for AutoComplete to guess the correct format. If you find that results aren't being parsed correctly, you may need to specify a custom <code>resultListLocator</code> and/or <code>resultTextLocator</code> as described in <a href="#locating-results">Locating Results</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   966
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   967
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   968
<h3 id="locating-results">Locating Results</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   969
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   970
<h4 id="result-list-locator">Result List Locator</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   971
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   972
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   973
It's not uncommon for a result source to return results inside a larger data structure, such as an object that contains other metadata about the response alongside the results.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   974
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   975
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   976
<pre class="code prettyprint">{
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   977
  &quot;status&quot;: &quot;ok&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   978
  &quot;query&quot;: &quot;sample response&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   979
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   980
  &quot;data&quot;: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   981
    &quot;results&quot;: [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   982
      &quot;foo&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   983
      &quot;bar&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   984
      &quot;baz&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   985
    ],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   986
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   987
    &quot;resultCount&quot;: 3
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   988
  }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   989
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   990
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   991
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   992
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   993
While AutoComplete automatically knows how to handle results that come back as a simple array, it needs some extra information in order to find a result array that's buried inside an object hierarchy. That's where the <code>resultListLocator</code> config attribute comes in.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   994
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   995
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   996
<pre class="code prettyprint">Y.one(&#x27;#ac-input&#x27;).plug(Y.Plugin.AutoComplete, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   997
  resultListLocator: &#x27;data.results&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   998
  source: &#x27;http:&#x2F;&#x2F;example.com&#x2F;search.jsonp?q={query}&amp;callback={callback}&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   999
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1000
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1001
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1002
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1003
In the example above, the <code>resultListLocator</code> tells AutoComplete to look for a <code>data</code> property on the response object, followed by a <code>results</code> sub-property that contains an array of results. The hierarchy may be arbitrarily deep, as long as it's consistent across responses.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1004
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1005
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1006
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1007
If the response format isn't always the same, you can specify a function as the <code>resultListLocator</code> and run your own arbitrary logic to find (or construct) the result array. The function will receive the raw response as an argument, and must return an array of results.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1008
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1009
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1010
<pre class="code prettyprint">&#x2F;&#x2F; Does the same thing as the previous example, but using a function.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1011
Y.one(&#x27;#ac-input&#x27;).plug(Y.Plugin.AutoComplete, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1012
  resultListLocator: function (response) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1013
    return (response &amp;&amp; response.data &amp;&amp; response.data.results) || [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1014
  },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1015
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1016
  source: &#x27;http:&#x2F;&#x2F;example.com&#x2F;search.jsonp?q={query}&amp;callback={callback}&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1017
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1018
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1019
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1020
<h4 id="result-text-locator">Result Text Locator</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1021
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1022
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1023
Not all results are simple strings. Sometimes a result is an object containing lots of metadata, only part of which is a text string. In cases like this, AutoComplete needs to know how to find some text that it can display in the result list, use for highlighting, and insert into the input field when the user selects a result.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1024
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1025
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1026
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1027
In the following sample, which is a subset of the data you might see in a response from the <a href="https://dev.twitter.com/docs/api/1/get/search">Twitter Search API</a>, an array of tweet objects is returned.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1028
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1029
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1030
<pre class="code prettyprint">{
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1031
  &quot;query&quot;: &quot;documentation&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1032
  &quot;results&quot;: [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1033
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1034
      &quot;from_user&quot;: &quot;yaypie&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1035
      &quot;from_user_id&quot;: 3840589,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1036
      &quot;from_user_id_str&quot;: &quot;3840589&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1037
      &quot;created_at&quot;: &quot;Mon, 06 Dec 2010 22:58:08 +0000&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1038
      &quot;id&quot;: 11917333878538241,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1039
      &quot;id_str&quot;: &quot;11917333878538241&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1040
      &quot;text&quot;: &quot;Is there such a thing as too much documentation?&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1041
      &quot;profile_image_url&quot;: &quot;http:&#x2F;&#x2F;a3.twimg.com&#x2F;profile_images&#x2F;994441119&#x2F;ryan-profile-big_normal.jpg&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1042
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1043
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1044
    ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1045
  ]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1046
}</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1047
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1048
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1049
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1050
The <code>resultTextLocator</code> config attribute can be used to tell AutoComplete how to find some text within an individual result object, much like the <code>resultListLocator</code> attribute tells AutoComplete how to find an array of results within a response object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1051
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1052
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1053
<pre class="code prettyprint">Y.one(&#x27;#ac-input&#x27;).plug(Y.Plugin.AutoComplete, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1054
  resultListLocator: &#x27;results&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1055
  resultTextLocator: &#x27;text&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1056
  source: &#x27;http:&#x2F;&#x2F;search.twitter.com&#x2F;search.json?q={query}&amp;callback={callback}&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1057
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1058
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1059
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1060
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1061
This tells AutoComplete that the value of each result object's <code>text</code> property should be used whenever a plain text form of the result is needed.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1062
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1063
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1064
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1065
The <code>resultTextLocator</code> can also be a function, which allows you to perform additional logic, such as combining multiple values into a single text string. The function will receive a single result object as an argument, and must return a text string. It will be called once for each result in the results array.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1066
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1067
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1068
<pre class="code prettyprint">Y.one(&#x27;#ac-input&#x27;).plug(Y.Plugin.AutoComplete, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1069
  resultListLocator: &#x27;results&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1070
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1071
  resultTextLocator: function (result) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1072
    return result.from_user + &#x27;: &#x27; + result.text;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1073
  },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1074
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1075
  source: &#x27;http:&#x2F;&#x2F;search.twitter.com&#x2F;search.json?q={query}&amp;callback={callback}&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1076
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1077
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1078
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1079
<h3 id="filtering-results">Filtering Results</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1080
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1081
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1082
After results are retrieved from a result source, it may be necessary to perform additional filtering to whittle down the result list to match the query, especially if the result source doesn't perform filtering itself. The <code>resultFilters</code> attribute can be used to specify a filter or array of filters for this purpose.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1083
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1084
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1085
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1086
A result filter is simply a function that accepts the current query and an array of result objects as arguments, and returns a filtered array of result objects.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1087
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1088
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1089
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1090
The <code>autocomplete-filters</code> module provides a prepackaged collection of result filters. This module isn't loaded by default in the <code>autocomplete</code> rollup, but can be loaded manually as needed.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1091
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1092
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1093
<pre class="code prettyprint">&#x2F;&#x2F; Include the autocomplete-filters module to use prepackaged filters.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1094
YUI().use(&#x27;autocomplete&#x27;, &#x27;autocomplete-filters&#x27;, function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1095
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1096
  &#x2F;&#x2F; Specify the name of the prepackaged filter you want to use, as
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1097
  &#x2F;&#x2F; a string.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1098
  Y.one(&#x27;#ac-input&#x27;).plug(Y.Plugin.AutoComplete, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1099
    resultFilters: &#x27;phraseMatch&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1100
  });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1101
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1102
  &#x2F;&#x2F; To use multiple filters, provide an array. Results will be passed
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1103
  &#x2F;&#x2F; through each filter in the order they&#x27;re listed in the array.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1104
  Y.one(&#x27;#ac-input&#x27;).plug(Y.Plugin.AutoComplete, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1105
    resultFilters: [&#x27;charMatch&#x27;, &#x27;wordMatch&#x27;]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1106
  });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1107
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1108
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1109
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1110
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1111
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1112
The following filters are available in the <code>autocomplete-filters</code> module:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1113
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1114
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1115
<table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1116
  <thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1117
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1118
      <th>Filter</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1119
      <th>Description</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1120
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1121
  </thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1122
  <tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1123
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1124
      <td><code>charMatch</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1125
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1126
        Returns results that contain all of the individual characters in the query, in any order (not necessarily consecutive).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1127
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1128
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1129
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1130
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1131
      <td><code>phraseMatch</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1132
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1133
        Returns results that contain the complete query as a phrase.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1134
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1135
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1136
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1137
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1138
      <td><code>startsWith</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1139
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1140
        Returns results that start with the complete query as a phrase.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1141
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1142
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1143
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1144
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1145
      <td><code>subWordMatch</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1146
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1147
        Returns results in which all the words of the query match either whole words or parts of words in the result. Non-word characters like whitespace and certain punctuation are ignored.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1148
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1149
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1150
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1151
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1152
      <td><code>wordMatch</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1153
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1154
        Returns results that contain all the individual words in the query, in any order (not necessarily consecutive).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1155
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1156
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1157
  </tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1158
</table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1159
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1160
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1161
By default, all filters are case-insensitive. Case-sensitive versions are available, and can be used by appending <code>Case</code> to the filter name. For example, the case-sensitive version of the <code>phraseMatch</code> filter is <code>phraseMatchCase</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1162
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1163
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1164
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1165
In addition to the standard set of filters, the optional <code>autocomplete-filters-accentfold</code> module provides a set of filters that perform accent-folded matching.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1166
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1167
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1168
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1169
Accent folding is when a character like <code>é</code> is converted to a non-accented form like <code>e</code>. This can be useful for performing loose matching (such as matching the word "résumé" when the query "resume" is typed), but also has some important caveats you should be aware of. See the <a href="#known-issues">Known Issues</a> section below for details.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1170
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1171
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1172
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1173
To use accent folding filters, include the <code>autocomplete-filters-accentfold</code> module, then specify a filter by appending <code>Fold</code> to the name. For example, the accent folding version of the <code>phraseMatch</code> filter is <code>phraseMatchFold</code>. Note that all accent folding filters are case-insensitive.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1174
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1175
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1176
<h3 id="highlighting-results">Highlighting Results</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1177
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1178
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1179
After results are retrieved and (optionally) filtered, you may want to highlight occurrences of the query within each result in order to indicate to the user why that result is relevant to what they typed. The <code>resultHighlighter</code> attribute can be used to specify a result highlighter for this purpose.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1180
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1181
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1182
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1183
Like a result filter, a highlighter is simply a function that accepts the current query and an array of result objects as arguments. Whereas filters return a filtered array of result objects, highlighters return an array of HTML strings which will be used when results are displayed to the user.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1184
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1185
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1186
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1187
The <code>autocomplete-highlighters</code> module provides a prepackaged collection of result highlighters. This module isn't loaded by default in the <code>autocomplete</code> rollup, but can be loaded manually as needed.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1188
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1189
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1190
<pre class="code prettyprint">&#x2F;&#x2F; Include the autocomplete-highlighters module to use prepackaged
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1191
&#x2F;&#x2F; highlighters.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1192
YUI().use(&#x27;autocomplete&#x27;, &#x27;autocomplete-highlighters&#x27;, function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1193
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1194
  &#x2F;&#x2F; Specify the name of the prepackaged highlighter you want to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1195
  &#x2F;&#x2F; use, as a string. Unlike result filters, only one highlighter
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1196
  &#x2F;&#x2F; may be used at a time.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1197
  Y.one(&#x27;#ac-input&#x27;).plug(Y.Plugin.AutoComplete, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1198
    resultHighlighter: &#x27;phraseMatch&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1199
  });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1200
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1201
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1202
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1203
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1204
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1205
The following highlighters are available in the <code>autocomplete-highlighters</code> module:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1206
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1207
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1208
<table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1209
  <thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1210
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1211
      <th>Highlighter</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1212
      <th>Description</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1213
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1214
  </thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1215
  <tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1216
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1217
      <td><code>charMatch</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1218
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1219
        Highlights individual query characters that occur anywhere in the result, in any order (not necessarily consecutive).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1220
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1221
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1222
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1223
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1224
      <td><code>phraseMatch</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1225
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1226
        Highlights the complete query as a phrase anywhere in the result.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1227
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1228
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1229
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1230
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1231
      <td><code>startsWith</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1232
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1233
        Highlights the complete query as a phrase at the start of the result.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1234
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1235
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1236
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1237
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1238
      <td><code>subWordMatch</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1239
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1240
        Highlights results in which all the words of the query match either whole words or parts of words in the result. Non-word characters like whitespace and certain punctuation are ignored.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1241
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1242
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1243
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1244
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1245
      <td><code>wordMatch</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1246
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1247
        Highlights individual words in the result that are also in the query, in any order (not necessarily consecutive). Non-word characters like punctuation are ignored.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1248
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1249
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1250
  </tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1251
</table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1252
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1253
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1254
The prepackaged highlighters use a <code>&lt;b&gt;</code> element with the class <code>yui3-highlight</code> to highlight results. You can style the highlighting using CSS by referring to that class name.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1255
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1256
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1257
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1258
By default, all highlighters are case-insensitive. Case-sensitive versions are available, and can be used by appending <code>Case</code> to the highlighter name. For example, the case-sensitive version of the <code>phraseMatch</code> highlighter is <code>phraseMatchCase</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1259
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1260
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1261
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1262
In addition to the standard set of highlighters, the optional <code>autocomplete-highlighters-accentfold</code> module provides a set of highlighters that perform accent-folded highlighting.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1263
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1264
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1265
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1266
To use accent folding highlighters, include the <code>autocomplete-highlighters-accentfold</code> module, then specifiy a highlighter by appending <code>Fold</code> to the name. For example, the accent folding version of the <code>phraseMatch</code> highlighter is <code>phraseMatchFold</code>. Note that all accent folding highlighters are case-insensitive.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1267
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1268
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1269
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1270
When using accent folding highlighters, there are some important caveats you should be aware of. See the <a href="#known-issues">Known Issues</a> section below for details.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1271
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1272
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1273
<h2 id="customizing-autocomplete">Customizing AutoComplete</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1274
<h3 id="skinning">Skinning</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1275
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1276
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1277
AutoComplete uses the following CSS classes to provide skinning hooks for its markup. See the <a href="#dom-structure">DOM Structure</a> for an example of the markup generated by the AutoComplete widget.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1278
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1279
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1280
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1281
You can add your own CSS to override the styling of these classes and customize the display and layout of the AutoComplete widget.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1282
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1283
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1284
<table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1285
  <thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1286
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1287
      <th>CSS Class</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1288
      <th>Description</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1289
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1290
  </thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1291
  <tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1292
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1293
      <td style="white-space:nowrap;"><code>yui3-aclist</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1294
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1295
        The <code>boundingBox</code> node that contains the rest of the AutoComplete list widget markup.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1296
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1297
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1298
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1299
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1300
      <td style="white-space:nowrap;"><code>yui3-aclist-aria</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1301
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1302
        ARIA live region container used to announce list updates to users of assistive tools. Positioned offscreen by default to make it invisible to sighted users.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1303
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1304
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1305
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1306
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1307
      <td style="white-space:nowrap;"><code>yui3-aclist-content</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1308
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1309
        The <code>contentBox</code> node that contains the AutoComplete list widget content. Apply visual styling like borders, padding, and margins to this node rather than the <code>boundingBox</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1310
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1311
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1312
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1313
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1314
      <td style="white-space:nowrap;"><code>yui3-aclist-hidden</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1315
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1316
        Class added to elements that should be hidden from both sighted and unsighted users, such as when the AutoComplete list is hidden.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1317
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1318
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1319
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1320
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1321
      <td style="white-space:nowrap;"><code>yui3-aclist-input</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1322
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1323
        The <code>inputNode</code>. This node must already exist on the page and will not be created by AutoComplete, but AutoComplete will add the class name to make it consistently skinnable.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1324
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1325
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1326
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1327
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1328
      <td style="white-space:nowrap;"><code>yui3-aclist-item</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1329
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1330
        A single result item node inside the result list.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1331
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1332
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1333
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1334
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1335
      <td style="white-space:nowrap;"><code>yui3-aclist-item-active</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1336
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1337
        An active result item node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1338
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1339
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1340
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1341
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1342
      <td style="white-space:nowrap;"><code>yui3-aclist-item-hover</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1343
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1344
        A result item node over which the mouse is currently hovering.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1345
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1346
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1347
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1348
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1349
      <td style="white-space:nowrap;"><code>yui3-aclist-list</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1350
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1351
        The <code>listNode</code> that contains result item nodes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1352
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1353
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1354
  </tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1355
</table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1356
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1357
<h3 id="writing-result-filters">Writing Result Filters</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1358
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1359
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1360
As described in <a href="#filtering-results">Filtering Results</a>, a result filter is just a function that accepts the current query and an array of result objects as arguments, and returns a filtered array of result objects.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1361
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1362
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1363
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1364
To use a custom filter, assign it to the <code>resultFilters</code> config attribute.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1365
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1366
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1367
<pre class="code prettyprint">&#x2F;&#x2F; Simple example of a case-insensitive phrase matching custom
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1368
&#x2F;&#x2F; filter.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1369
function customFilter(query, results) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1370
  query = query.toLowerCase();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1371
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1372
  &#x2F;&#x2F; Iterate through the array of results and return a filtered
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1373
  &#x2F;&#x2F; array containing only results whose text includes the full
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1374
  &#x2F;&#x2F; query.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1375
  return Y.Array.filter(results, function (result) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1376
    return result.text.toLowerCase().indexOf(query) !== -1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1377
  });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1378
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1379
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1380
&#x2F;&#x2F; Create an AutoComplete instance that uses the custom filter.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1381
Y.one(&#x27;#ac-input&#x27;).plug(Y.Plugin.AutoComplete, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1382
  resultFilters: customFilter
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1383
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1384
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1385
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1386
<h3 id="writing-result-highlighters">Writing Result Highlighters</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1387
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1388
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1389
A result highlighter is similar to a result filter, but instead of returning a filtered array of results, it returns an array of HTML strings.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1390
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1391
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1392
<pre class="code prettyprint">&#x2F;&#x2F; Simple example of a case-insensitive custom phrase highlighter.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1393
&#x2F;&#x2F; Uses Y.Highlight, which is provided by the &#x27;highlight&#x27; module.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1394
function customHighlighter(query, results) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1395
  return Y.Array.map(results, function (result) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1396
    return Y.Highlight.all(result.text, query);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1397
  });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1398
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1399
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1400
&#x2F;&#x2F; Create an AutoComplete instance that uses the custom highlighter.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1401
Y.one(&#x27;#ac-input&#x27;).plug(Y.Plugin.AutoComplete, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1402
  resultHighlighter: customHighlighter
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1403
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1404
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1405
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1406
<h3 id="writing-result-formatters">Writing Result Formatters</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1407
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1408
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1409
A result formatter is a function that receives the current query and an array of result objects as arguments, and must return an array of HTML strings or Node instances. Formatters run after filters and highlighters, and their output will be used for the display of result items in the final list of results.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1410
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1411
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1412
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1413
An array of result objects created from a Twitter Search API response would look something like this after filtering and highlighting:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1414
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1415
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1416
<pre class="code prettyprint">[
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1417
  {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1418
    text: &#x27;Is there such a thing as too much documentation?&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1419
    highlighted: &#x27;Is there such a thing as too much &lt;b class=&quot;yui3-highlight&quot;&gt;documentation&lt;&#x2F;b&gt;?&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1420
    raw: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1421
      &quot;from_user&quot;: &quot;yaypie&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1422
      &quot;from_user_id&quot;: 3840589,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1423
      &quot;from_user_id_str&quot;: &quot;3840589&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1424
      &quot;created_at&quot;: &quot;Mon, 06 Dec 2010 22:58:08 +0000&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1425
      &quot;id&quot;: 11917333878538241,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1426
      &quot;id_str&quot;: &quot;11917333878538241&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1427
      &quot;text&quot;: &quot;Is there such a thing as too much documentation?&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1428
      &quot;profile_image_url&quot;: &quot;http:&#x2F;&#x2F;a3.twimg.com&#x2F;profile_images&#x2F;994441119&#x2F;ryan-profile-big_normal.jpg&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1429
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1430
  },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1431
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1432
  ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1433
]</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1434
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1435
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1436
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1437
Using a result formatter, we can format these results as tweets in the result list instead of just displaying them as boring text.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1438
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1439
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1440
<pre class="code prettyprint">&#x2F;&#x2F; HTML template string that will be used for each tweet result.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1441
var tweetTemplate =
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1442
  &#x27;&lt;div class=&quot;tweet&quot;&gt;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1443
    &#x27;&lt;div class=&quot;hd&quot;&gt;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1444
      &#x27;&lt;img src=&quot;{profile_image_url}&quot; class=&quot;photo&quot; &#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1445
        &#x27;alt=&quot;Profile photo for {from_user}&quot;&gt;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1446
    &#x27;&lt;&#x2F;div&gt;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1447
    &#x27;&lt;div class=&quot;bd&quot;&gt;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1448
      &#x27;&lt;strong class=&quot;user&quot;&gt;{from_user}&lt;&#x2F;strong&gt;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1449
      &#x27;&lt;span class=&quot;tweet-text&quot;&gt;{highlighted}&lt;&#x2F;span&gt;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1450
    &#x27;&lt;&#x2F;div&gt;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1451
    &#x27;&lt;div class=&quot;ft&quot;&gt;{created_at}&lt;&#x2F;div&gt;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1452
  &#x27;&lt;&#x2F;div&gt;&#x27;;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1453
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1454
&#x2F;&#x2F; Custom formatter for tweets.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1455
function tweetFormatter(query, results) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1456
  &#x2F;&#x2F; Iterate over the array of tweet result objects and return an
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1457
  &#x2F;&#x2F; array of HTML strings.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1458
  return Y.Array.map(results, function (result) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1459
    var tweet = result.raw;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1460
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1461
    &#x2F;&#x2F; Use string substitution to fill out the tweet template and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1462
    &#x2F;&#x2F; return an HTML string for this result.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1463
    return Y.Lang.sub(tweetTemplate, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1464
      created_at       : tweet.created_at,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1465
      from_user        : tweet.from_user,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1466
      highlighted      : result.highlighted,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1467
      profile_image_url: tweet.profile_image_url
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1468
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1469
  });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1470
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1471
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1472
&#x2F;&#x2F; Instantiate AutoComplete using the custom formatter.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1473
Y.one(&#x27;#ac-input&#x27;).plug(Y.Plugin.AutoComplete, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1474
  resultFormatter: tweetFormatter,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1475
  resultHighlighter: &#x27;phraseMatch&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1476
  resultListLocator: &#x27;results&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1477
  resultTextLocator: &#x27;text&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1478
  source: &#x27;http:&#x2F;&#x2F;search.twitter.com&#x2F;search.json?q={query}&amp;callback={callback}&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1479
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1480
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1481
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1482
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1483
Add some CSS to make things pretty, and you're good to go.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1484
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1485
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1486
<h2 id="extending-autocompletebase">Extending <code>AutoCompleteBase</code></h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1487
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1488
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1489
The <code>Y.AutoCompleteBase</code> class provides the core logic for a generic implementation of the autocomplete pattern, but without any UI-related functionality or implementation code. It's meant to be used as a <code>Y.Base</code> or <code>Y.Widget</code> extension and mixed into another class that builds an implementation on top of it (this is what <code>Y.AutoCompleteList</code> does).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1490
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1491
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1492
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1493
You can take advantage of <code>AutoCompleteBase</code> to build a customized implementation of the autocomplete pattern that doesn't necessarily have to use a traditional list-based suggestion UI.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1494
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1495
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1496
<h3 id="as-a-standalone-class">As a Standalone Class</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1497
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1498
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1499
The following skeleton demonstrates how to create a standalone class that mixes in the <code>AutoCompleteBase</code> extension, making it instantiable and usable as an API, but without any user-visible interface.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1500
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1501
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1502
<pre class="code prettyprint">&#x2F;&#x2F; Create a custom class that mixes in the AutoCompleteBase extension.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1503
var MyAutoComplete = Y.Base.create(&#x27;myAC&#x27;, Y.Base, [Y.AutoCompleteBase], {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1504
  initializer: function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1505
    &#x2F;&#x2F; The following two function calls allow AutoComplete to attach
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1506
    &#x2F;&#x2F; events to the inputNode and manage the inputNode&#x27;s browser
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1507
    &#x2F;&#x2F; autocomplete functionality.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1508
    this._bindUIACBase();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1509
    this._syncUIACBase();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1510
  }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1511
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1512
  &#x2F;&#x2F; Custom prototype methods and properties here (optional).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1513
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1514
}, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1515
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1516
  &#x2F;&#x2F; Custom static methods and properties here (optional).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1517
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1518
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1519
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1520
&#x2F;&#x2F; Create a new instance of the custom MyAutoComplete class, with
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1521
&#x2F;&#x2F; an array result source.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1522
var ac = new MyAutoComplete({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1523
  inputNode: &#x27;#ac-input&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1524
  source: [&#x27;foo&#x27;, &#x27;bar&#x27;, &#x27;baz&#x27;]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1525
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1526
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1527
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1528
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1529
From an interaction standpoint, this is a little like using AutoComplete as a blank slate. It will allow you to attach AutoComplete to an input node and hook into AutoComplete's API and events so you get result retrieval, filtering, highlighting, formatting, etc., but anything beyond that is up to you.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1530
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1531
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1532
<h3 id="as-a-widget-class">As a Widget Class</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1533
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1534
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1535
Building your own widget on top of <code>AutoCompleteBase</code> is easy. Just mix <code>AutoCompleteBase</code> into your widget class, then flesh it out with your own custom widget implementation. Your widget will inherit all of <code>AutoCompleteBase</code>'s methods, attributes, and events.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1536
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1537
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1538
<pre class="code prettyprint">&#x2F;&#x2F; Create a custom widget that mixes in the AutoCompleteBase extension.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1539
var MyAutoComplete = Y.Base.create(&#x27;myAC&#x27;, Y.Widget, [Y.AutoCompleteBase], {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1540
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1541
  &#x2F;&#x2F; Custom prototype methods and properties here (optional).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1542
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1543
}, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1544
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1545
  &#x2F;&#x2F; Custom static methods and properties here (optional).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1546
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1547
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1548
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1549
&#x2F;&#x2F; Create a new instance of the custom MyAutoComplete widget, with
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1550
&#x2F;&#x2F; an array result source.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1551
var ac = new MyAutoComplete({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1552
  inputNode: &#x27;#ac-input&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1553
  source: [&#x27;foo&#x27;, &#x27;bar&#x27;, &#x27;baz&#x27;]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1554
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1555
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1556
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1557
<h2 id="accessibility">Accessibility</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1558
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1559
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1560
AutoComplete is designed to be accessible out of the box to users of screen readers and other assistive tools. This is accomplished via a combination of progressive enhancement and adherence to <a href="http://www.w3.org/WAI/intro/aria">WAI-ARIA</a> best practices, which help to convey the meaning and behavior of the AutoComplete widget to users who may not be able to see or interact with it in a conventional way.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1561
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1562
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1563
<h3 id="keyboard-interaction">Keyboard Interaction</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1564
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1565
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1566
The AutoComplete widget supports the following keyboard commands.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1567
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1568
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1569
<table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1570
  <thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1571
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1572
      <th>Key</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1573
      <th>Description</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1574
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1575
  </thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1576
  <tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1577
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1578
      <td style="white-space: nowrap;">Down arrow</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1579
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1580
        Activates the next item in the list, or displays the list if the list is currently hidden. Wraps around to the top of the list if the <code>circular</code> config attribute is set to <code>true</code> and there is no next item.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1581
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1582
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1583
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1584
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1585
      <td style="white-space: nowrap;">Enter</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1586
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1587
        When the list is visible and an item is active, selects the currently active item and hides the list.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1588
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1589
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1590
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1591
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1592
      <td style="white-space: nowrap;">Escape</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1593
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1594
        Hides the list if it's currently visible.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1595
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1596
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1597
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1598
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1599
      <td style="white-space: nowrap;">Tab</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1600
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1601
        When the list is visible and an item is active, selects the currently active item and hides the list.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1602
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1603
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1604
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1605
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1606
      <td style="white-space: nowrap;">Up arrow</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1607
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1608
        Activates the previous item in the list. Wraps around to the bottom of the list if the <code>circular</code> config attribute is set to <code>true</code> and there is no previous item.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1609
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1610
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1611
  </tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1612
</table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1613
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1614
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1615
Keyboard functionality is not loaded by default for users of iOS and Android-based devices, since these devices typically don't provide support for keyboard interaction. If for some reason you want to load the keyboard code for these devices, include the <code>autocomplete-list-keys</code> module in your <code>YUI().use()</code> statement.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1616
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1617
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1618
<h3 id="aria">ARIA</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1619
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1620
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1621
When the AutoComplete widget is rendered, it adds the following ARIA attributes to the <code>inputNode</code>:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1622
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1623
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1624
<dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1625
  <dt><code>aria-activedescendant="<i>activeItem id</i>"</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1626
  <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1627
    Indicates that the specified result item node is the active (pre-selected) item in the list owned by this <code>inputNode</code>. This attribute is added or removed automatically when the <code>activeItem</code> changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1628
  </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1629
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1630
  <dt><code>aria-autocomplete=&quot;list&quot;</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1631
  <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1632
    Indicates that the <code>inputNode</code> provides autocomplete suggestions in the form of a list as the user types.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1633
  </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1634
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1635
  <dt><code>aria-expanded="<i>true|false</i>"</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1636
  <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1637
    Indicates whether the result list is expanded (true) or collapsed (false). This attribute will be updated automatically when the list's state changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1638
  </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1639
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1640
  <dt><code>aria-owns="<i>listNode id</i>"</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1641
  <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1642
    <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1643
    Indicates that there is a parent/child relationship between the <code>inputNode</code> (which accepts user input) and the <code>listNode</code> (which displays autocomplete results related to that input).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1644
    </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1645
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1646
    <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1647
    Not all assistive tools support the <code>aria-owns</code> attribute. For this reason, it's strongly recommended that you allow the AutoComplete widget to render its list markup inside the same container element as the input node, and immediately after the input node (this is the default behavior) rather than specifying a different parent node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1648
    </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1649
  </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1650
</dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1651
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1652
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1653
The list markup, which is rendered dynamically, uses the following ARIA attributes:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1654
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1655
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1656
<dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1657
  <dt><code>aria-hidden="<i>true|false</i>"</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1658
  <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1659
    Applied to the <code>boundingBox</code>. Indicates whether the result list is hidden (true) or visible (false). This attribute will be updated automatically when the lists's state changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1660
  </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1661
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1662
  <dt><code>role=&quot;listbox&quot;</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1663
  <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1664
    Applied to the <code>listNode</code>. Indicates that this node represents a widget that allows the user to select one or more items from a list of choices.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1665
  </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1666
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1667
  <dt><code>role=&quot;option&quot;</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1668
  <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1669
    Applied to individual result item nodes inside the <code>listNode</code>. Indicates that the node represents a selectable item in a list.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1670
  </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1671
</dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1672
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1673
<h2 id="known-issues">Known Issues</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1674
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1675
<ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1676
  <li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1677
    <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1678
    The accent folding implementation used for filters and highlighters is not comprehensive, since it wouldn't be practical to serve a complete set of character data to clients via JS. The implementation used here provides basic accent folding for common alphanumeric characters only, and is not locale-aware. Whenever possible, accent folding should be done on the server, where more complete character data can be used, and not on the client.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1679
    </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1680
  </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1681
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1682
  <li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1683
    <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1684
    When used for matching, accent folding is likely to produce erroneous matches for languages in which characters with diacritics are considered different from their base characters, or where correct folding would map to other character sequences than just stripped characters.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1685
    </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1686
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1687
    <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1688
    For example, in German "ü" is a character that's clearly different from "u" and should match "ue" instead. The word "betrügen" means "to defraud", while "betrugen" is the past tense of "to behave". The name "Müller" is expected to match "Mueller", but not "Muller".
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1689
    </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1690
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1691
    <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1692
    On the other hand, accent folding falls short for languages where different base characters are expected to match. In Japanese, for example, hiragana and katakana characters with the same pronunciation ("あ" and "ア") are commonly treated as equivalent for lookups, but accent folding treats them as different.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1693
    </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1694
  </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1695
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1696
  <li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1697
    <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1698
    The result highlighters provided by the <code>autocomplete-highlighters</code> module may introduce unwanted word breaks in Arabic, Syriac, and N'Ko scripts. This issue is being tracked in <a href="http://yuilibrary.com/projects/yui3/ticket/2529396">ticket #2529396</a>, and will be fixed in a future release.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1699
    </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1700
  </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1701
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1702
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1703
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1704
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1705
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1706
        <div class="yui3-u-1-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1707
            <div class="sidebar">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1708
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1709
                    <div id="toc" class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1710
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1711
                            <h2 class="no-toc">Table of Contents</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1712
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1713
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1714
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1715
                            <ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1716
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1717
<a href="#getting-started">Getting Started</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1718
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1719
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1720
<a href="#using-autocomplete">Using AutoComplete</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1721
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1722
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1723
<a href="#quick-start">Quick Start</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1724
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1725
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1726
<a href="#instantiating-autocomplete">Instantiating AutoComplete</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1727
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1728
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1729
<a href="#as-a-plugin">As a Plugin</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1730
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1731
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1732
<a href="#as-a-class">As a Class</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1733
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1734
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1735
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1736
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1737
<a href="#dom-structure">DOM Structure</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1738
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1739
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1740
<a href="#configuring-autocomplete">Configuring AutoComplete</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1741
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1742
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1743
<a href="#base-config-attributes">Base Config Attributes</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1744
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1745
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1746
<a href="#list-config-attributes">List Config Attributes</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1747
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1748
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1749
<a href="#aligning-the-list">Aligning the List</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1750
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1751
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1752
<a href="#using-query-delimiters">Using Query Delimiters</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1753
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1754
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1755
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1756
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1757
<a href="#autocomplete-events">AutoComplete Events</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1758
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1759
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1760
<a href="#base-events">Base Events</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1761
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1762
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1763
<a href="#list-events">List Events</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1764
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1765
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1766
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1767
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1768
<a href="#result-sources">Result Sources</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1769
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1770
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1771
<a href="#arrayobject">Array/Object</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1772
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1773
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1774
<a href="#datasource">DataSource</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1775
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1776
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1777
<a href="#function">Function</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1778
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1779
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1780
<a href="#jsonpxhr-url">JSONP/XHR URL</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1781
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1782
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1783
<a href="#select-node"><code>&lt;select&gt;</code> Node</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1784
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1785
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1786
<a href="#yql-query">YQL Query</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1787
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1788
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1789
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1790
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1791
<a href="#locating-results">Locating Results</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1792
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1793
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1794
<a href="#result-list-locator">Result List Locator</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1795
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1796
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1797
<a href="#result-text-locator">Result Text Locator</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1798
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1799
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1800
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1801
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1802
<a href="#filtering-results">Filtering Results</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1803
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1804
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1805
<a href="#highlighting-results">Highlighting Results</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1806
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1807
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1808
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1809
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1810
<a href="#customizing-autocomplete">Customizing AutoComplete</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1811
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1812
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1813
<a href="#skinning">Skinning</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1814
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1815
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1816
<a href="#writing-result-filters">Writing Result Filters</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1817
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1818
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1819
<a href="#writing-result-highlighters">Writing Result Highlighters</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1820
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1821
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1822
<a href="#writing-result-formatters">Writing Result Formatters</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1823
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1824
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1825
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1826
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1827
<a href="#extending-autocompletebase">Extending <code>AutoCompleteBase</code></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1828
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1829
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1830
<a href="#as-a-standalone-class">As a Standalone Class</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1831
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1832
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1833
<a href="#as-a-widget-class">As a Widget Class</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1834
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1835
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1836
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1837
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1838
<a href="#accessibility">Accessibility</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1839
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1840
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1841
<a href="#keyboard-interaction">Keyboard Interaction</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1842
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1843
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1844
<a href="#aria">ARIA</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1845
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1846
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1847
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1848
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1849
<a href="#known-issues">Known Issues</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1850
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1851
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1852
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1853
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1854
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1855
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1856
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1857
                    <div class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1858
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1859
                            <h2 class="no-toc">Examples</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1860
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1861
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1862
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1863
                            <ul class="examples">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1864
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1865
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1866
                                        <li data-description="How to provide autocomplete suggestions from a local array.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1867
                                            <a href="ac-local.html">Basic Local Data</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1868
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1869
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1870
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1871
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1872
                                        <li data-description="How to provide autocomplete suggestions using a remote JSONP source.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1873
                                            <a href="ac-jsonp.html">Remote Data via JSONP</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1874
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1875
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1876
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1877
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1878
                                        <li data-description="How to provide autocomplete suggestions using a YQL query source.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1879
                                            <a href="ac-yql.html">Remote Data via YQL</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1880
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1881
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1882
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1883
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1884
                                        <li data-description="How to provide autocomplete suggestions using a DataSource instance.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1885
                                            <a href="ac-datasource.html">Remote Data via DataSource</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1886
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1887
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1888
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1889
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1890
                                        <li data-description="How to implement delimited tag completion.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1891
                                            <a href="ac-tagging.html">Tag Completion Using Query Delimiters</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1892
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1893
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1894
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1895
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1896
                                        <li data-description="How to find and select Flickr photos using a YQL source and a custom autocomplete result formatter.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1897
                                            <a href="ac-flickr.html">Find Photos on Flickr (Custom Formatting, YQL Source)</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1898
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1899
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1900
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1901
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1902
                                        <li data-description="How to use autocomplete-base to filter a set of existing items on a page.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1903
                                            <a href="ac-filter.html">Filter a Set of Existing Items on a Page</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1904
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1905
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1906
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1907
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1908
                                        <li data-description="How to find an address using a YQL source calling Google&#x27;s Geocoding Service">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1909
                                            <a href="ac-geocode.html">Address Completion on Google&#x27;s Geocoding Service</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1910
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1911
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1912
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1913
                            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1914
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1915
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1916
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1917
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1918
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1919
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1920
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1921
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1922
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1923
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1924
<script src="../assets/vendor/prettify/prettify-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1925
<script>prettyPrint();</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1926
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1927
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1928
YUI.Env.Tests = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1929
    examples: [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1930
    project: '../assets',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1931
    assets: '../assets/autocomplete',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1932
    name: 'autocomplete',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1933
    title: 'AutoComplete',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1934
    newWindow: '',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1935
    auto:  false 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1936
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1937
YUI.Env.Tests.examples.push('ac-local');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1938
YUI.Env.Tests.examples.push('ac-jsonp');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1939
YUI.Env.Tests.examples.push('ac-yql');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1940
YUI.Env.Tests.examples.push('ac-datasource');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1941
YUI.Env.Tests.examples.push('ac-tagging');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1942
YUI.Env.Tests.examples.push('ac-flickr');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1943
YUI.Env.Tests.examples.push('ac-filter');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1944
YUI.Env.Tests.examples.push('ac-geocode');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1945
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1946
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1947
<script src="../assets/yui/test-runner.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1948
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1949
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1950
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1951
</body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1952
</html>