Page 68 - JavaScript修炼之道
P. 68

任务25  自动完成输入           57


                   自动完成的HTML代码

                    form/autocompletion/index.html

                   <div class="p" id="local">
                     <label for="edtCachedSearch">Local search:</label>
                     <input type="text" id="edtCachedSearch" name="search" type="text" />
                     <div class="completions"></div>
                   </div>

                   设置可读性更好的样式

                    form/autocompletion/autocompletion.css

                   .completions {
                     border: 1px solid silver; background: white; font-size: 80%; z-index: 2;
                   }
                   .completions ul { margin: 0; padding: 0; list-style-type: none; }
                   .completions li { line-height: 1.5em; white-space: nowrap;
                                     overflow: hidden; }
                   .completions li.selected { background: #ffa; }
                   .completions strong { color: green; }
                   用客户端里的数据源做自动完成

                    form/autocompletion/autocompletion.js

                   var FREQUENT_SEARCHES = [
                     'JavaScript', 'JavaScript frameworks', 'Prototype', 'jQuery', 'Dojo',
                     'MooTools', 'Ext', 'Ext JS', 'script.aculo.us', 'Scripty2', 'Ajax',
                     'XHR', '42'
                   ];

                   function initLocalCompletions() {
                     var field = $('edtCachedSearch'), zone = field.next('.completions');
                     new Autocompleter.Local(field, zone, FREQUENT_SEARCHES,
                                                 { fullSearch: true });
                   }
                   用Ajax做自动完成

                    form/autocompletion/autocompletion.js

                   function initAjaxCompletions() {
                     var field = $('edtAjaxSearch'), zone = field.next('.completions');
                     new Ajax.Autocompleter(field, zone, 'autocomplete.php', {
                       method: 'get', paramName: 'search' });
                   }
               相关任务

                     任务23
   63   64   65   66   67   68   69   70   71   72   73