Учебники

script.aculo.us — Автозаполнение

Изначально script.aculo.us поддерживает два источника автозаполнения:

  • Удаленные источники (полученные через Ajax),
  • Локальные источники (строковые массивы в скриптах вашей веб-страницы).

В зависимости от источника, который вы планируете использовать, вы будете создавать экземпляры Ajax.Autocompleter или Autocompleter.Local соответственно. Хотя эти два объекта оснащены специальными опциями, они имеют большой набор функций и обеспечивают единообразное взаимодействие с пользователем.

Есть четыре вещи, которые вы всегда будете передавать этим объектам при их создании —

  • Текстовое поле, которое вы хотите сделать автозаполняемым. Как обычно, вы можете передать само поле или значение его атрибута id =.

  • Контейнер для вариантов автозаполнения, который в конечном итоге будет содержать список параметров <ul> </ li> для выбора. Опять же, передайте элемент напрямую или его id = . Этот элемент чаще всего является простым <div>. </ P> </ li>

  • Источник данных, который будет выражаться в зависимости от типа источника в виде массива строк JavaScript или в виде URL-адреса удаленного источника.

  • Наконец, варианты. Как всегда, они предоставляются в виде своего рода хэша, и оба объекта автозаполнения могут обойтись без пользовательской опции; Есть подходящие значения по умолчанию для всего.

Текстовое поле, которое вы хотите сделать автозаполняемым. Как обычно, вы можете передать само поле или значение его атрибута id =.

Контейнер для вариантов автозаполнения, который в конечном итоге будет содержать список параметров <ul> </ li> для выбора. Опять же, передайте элемент напрямую или его id = . Этот элемент чаще всего является простым <div>. </ P> </ li>

Источник данных, который будет выражаться в зависимости от типа источника в виде массива строк JavaScript или в виде URL-адреса удаленного источника.

Наконец, варианты. Как всегда, они предоставляются в виде своего рода хэша, и оба объекта автозаполнения могут обойтись без пользовательской опции; Есть подходящие значения по умолчанию для всего.

Чтобы использовать возможности автозаполнения script.aculo.us, вам необходимо загрузить модули controls.js и effect.js вместе с модулем prototype.js. Итак, ваша минимальная загрузка для script.aculo.us будет выглядеть так —

<script type = "text/javascript" src = "/javascript/prototype.js"></script>
<script type = "text/javascript"  src = "/javascript/scriptaculous.js?load = effects,controls"></script>

Создание автозаполнения Ajax

Синтаксис конструкции следующий:

new Ajax.Autocompleter(element, container, url [ , options ] )

Конструктор для Ajax.Autocompleter принимает четыре параметра:

  • Имя элемента или ссылка на текстовое поле, которое должно быть заполнено выбором данных.

  • Имя элемента или ссылка на элемент <div>, который будет использоваться элементом управления в качестве меню выбора.

  • URL-адрес ресурса на стороне сервера, который будет предоставлять варианты выбора.

  • Обычные варианты хэша.

Имя элемента или ссылка на текстовое поле, которое должно быть заполнено выбором данных.

Имя элемента или ссылка на элемент <div>, который будет использоваться элементом управления в качестве меню выбора.

URL-адрес ресурса на стороне сервера, который будет предоставлять варианты выбора.

Обычные варианты хэша.

Опции

При создании объекта Ajax.Autocompleter вы можете использовать один или несколько из следующих параметров.

Sr.No Вариант и описание
1

ParamName

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

2

minChars

Количество символов, которое необходимо ввести до того, как запрос на выбор на стороне сервера может быть запущен. По умолчанию 1.

3

частота

Интервал (в секундах) между внутренними проверками, чтобы определить, следует ли публиковать запрос к серверному ресурсу. По умолчанию 0,4.

4

Индикатор

Идентификатор или ссылка на элемент, который будет отображаться во время выполнения запроса на стороне сервера. Если опущен, элемент не раскрывается.

5

параметры

Текстовая строка, содержащая дополнительные параметры запроса для передачи на серверный ресурс.

6

updateElement

Функция обратного вызова, которая запускается, когда пользователь выбирает один из вариантов, возвращаемых с сервера, который заменяет внутреннюю функцию, которая обновляет текстовое поле выбранным значением.

7

afterUpdateElement

Функция обратного вызова, запускаемая после выполнения функции updateElement.

8

Лексемы

Одна текстовая строка или массив текстовых строк, которые указывают маркеры, которые будут использоваться в качестве разделителей, чтобы можно было вводить несколько элементов в текстовое поле, каждое из которых может быть автоматически заполнено индивидуально.

ParamName

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

minChars

Количество символов, которое необходимо ввести до того, как запрос на выбор на стороне сервера может быть запущен. По умолчанию 1.

частота

Интервал (в секундах) между внутренними проверками, чтобы определить, следует ли публиковать запрос к серверному ресурсу. По умолчанию 0,4.

Индикатор

Идентификатор или ссылка на элемент, который будет отображаться во время выполнения запроса на стороне сервера. Если опущен, элемент не раскрывается.

параметры

Текстовая строка, содержащая дополнительные параметры запроса для передачи на серверный ресурс.

updateElement

Функция обратного вызова, которая запускается, когда пользователь выбирает один из вариантов, возвращаемых с сервера, который заменяет внутреннюю функцию, которая обновляет текстовое поле выбранным значением.

afterUpdateElement

Функция обратного вызова, запускаемая после выполнения функции updateElement.

Лексемы

Одна текстовая строка или массив текстовых строк, которые указывают маркеры, которые будут использоваться в качестве разделителей, чтобы можно было вводить несколько элементов в текстовое поле, каждое из которых может быть автоматически заполнено индивидуально.

пример

Live Demo

<html>
   <head>
      <title>Simple Ajax Auto-completer Example</title>
		
      <script type = "text/javascript" src = "/javascript/prototype.js"></script>
      <script type = "text/javascript" src = "/javascript/scriptaculous.js?load = effects,controls"></script>
      
      <script type = "text/javascript">
         window.onload = function() {
            new Ajax.Autocompleter(
               'autoCompleteTextField',
               'autoCompleteMenu',
               '/script.aculo.us/serverSideScript.php', {}
            );
         }
      </script>
   </head>
   
   <body>
      <p>Type something in this box and then select suggested option from the list </p>

      <div>
         <label>Text field:</label>
         <input type = "text" id = "autoCompleteTextField"/>
         <div id = "autoCompleteMenu"></div>
      </div>
   </body>
</html>

Теперь нам нужна сторона сервера для доступа к этой странице и предоставления URL источника данных (serverSideScript.php). Вы сохраните полную логику для отображения предложений в этом скрипте.

Например, мы храним простой текст HTML в serverSideScript.php . Вы можете написать свой сценарий, используя CGI, PHP, Ruby или любой другой сценарий на стороне сервера, чтобы выбрать подходящие предложения и отформатировать их в виде <ul> <li> … </ li> </ ul> и передать их обратно. к программе звонящего.

<ul>
   <li>One</li>
   <li>Two</li>
   <li>Three</li>
   <li>Four</li>
   <li>Five</li>
   <li>Six</li>
</ul>

Это даст следующий результат —

с различными вариантами, обсуждаемыми в приведенной выше таблице.

Создание локального автозаполнения

Создание локального автозаполнения практически идентично созданию автозаполнения Ajax, как мы уже обсуждали в предыдущем разделе.

Основное различие заключается в том, как набор данных поддержки для автоматического завершения идентифицируется для элемента управления.

С помощью автозаполнения Ajax мы предоставили URL-адрес ресурса на стороне сервера, который будет выполнять необходимую фильтрацию с учетом пользовательского ввода и возвращать только совпадающие элементы данных. Используя Local Autocompleter, мы вместо этого предоставляем полный список элементов данных в виде массива JavaScript String, а сам элемент управления выполняет операцию фильтрации в своем собственном клиентском коде.

Весь синтаксис конструкции на самом деле выглядит следующим образом:

new Autocompleter.Local(field, container, dataSource [ , options ] );

Конструктор для Autocompleter.Local принимает четыре параметра —

  • Имя элемента или ссылка на текстовое поле, которое должно быть заполнено выбором данных.

  • Имя элемента или ссылка на элемент <div>, который будет использоваться в качестве меню выбора элементом управления

  • Для третьего параметра вместо URL-адреса, как в случае автозаполнения с помощью сервера, мы предоставляем небольшой массив String, который содержит все возможные значения.

  • Обычные варианты хэша.

Имя элемента или ссылка на текстовое поле, которое должно быть заполнено выбором данных.

Имя элемента или ссылка на элемент <div>, который будет использоваться в качестве меню выбора элементом управления

Для третьего параметра вместо URL-адреса, как в случае автозаполнения с помощью сервера, мы предоставляем небольшой массив String, который содержит все возможные значения.

Обычные варианты хэша.

Опции

При создании объекта Autocompleter.Local вы можете использовать один или несколько из следующих параметров.

Sr.No Вариант и описание
1

Выбор

Количество вариантов отображения. По умолчанию 10.

2

partialSearch

Включает сопоставление в начале слов, встроенных в строки завершения. По умолчанию true.

3

fullSearch

Включает сопоставление в любом месте в строках завершения. По умолчанию false.

4

partialChars

Определяет количество символов, которые должны быть напечатаны перед попыткой частичного совпадения. По умолчанию 2.

5

IgnoreCase

Игнорирует регистр при сопоставлении. По умолчанию true.

Выбор

Количество вариантов отображения. По умолчанию 10.

partialSearch

Включает сопоставление в начале слов, встроенных в строки завершения. По умолчанию true.

fullSearch

Включает сопоставление в любом месте в строках завершения. По умолчанию false.

partialChars

Определяет количество символов, которые должны быть напечатаны перед попыткой частичного совпадения. По умолчанию 2.

IgnoreCase

Игнорирует регистр при сопоставлении. По умолчанию true.

пример

Live Demo

<html>
   <head>
      <title>Simple Ajax Auto-completer Example</title>
		
      <script type = "text/javascript" src = "/javascript/prototype.js"></script>
      <script type = "text/javascript"  src = "/javascript/scriptaculous.js?load = effects,controls"></script>
      
      <script type = "text/javascript">
         window.onload = function() {
            new Autocompleter.Local(
               'autoCompleteTextField',
               'autoCompleteMenu',
               ['abcdef','abcdeg','xyzabcefg', 'tybabdefg','acdefg'],
               {ignoreCase:false}
            );
         }
      </script>
   </head>

   <body>
      <p>Type something in this box and then select suggested option from the list </p>
		
      <div>
         <label>Text field:</label>
         <input type = "text" id = "autoCompleteTextField"/>
         <div id = "autoCompleteMenu"></div>
      </div>		
   </body>
</html>

Когда отображается и после ввода символа «а» в текстовое поле, отображаются все параметры соответствия.

Используйте наш онлайн-компилятор для лучшего понимания кода с различными параметрами, описанными в приведенной выше таблице.

Это даст следующий результат —