Почему ZendX Autocomplete не работает? - PullRequest
1 голос
/ 17 августа 2010

Я настраиваю свой первый ZendX_JQuery_Form.В моем контроллере у меня есть следующий код:

$ form = new ZendX_JQuery_Form ();

$ date1 = new ZendX_JQuery_Form_Element_DatePicker ('date1', array ('label' => ')Дата:' ) );$ form-> addElement ($ date1);

$ elem = new ZendX_JQuery_Form_Element_AutoComplete ('ac1', массив ('label' => 'Autocomplete:'));$ elem-> setJQueryParams (array ('source' => array ('New York', 'Berlin', 'Bern', 'Boston')));$ Форма-> addElement ($ эль);$ this-> view-> form = $ form;

И я включаю необходимый код в свой Boostrap:

$ view-> addHelperPath ("ZendX / JQuery / View / Helper"," ZendX_JQuery_View_Helper ");

Таким образом, DatePicker работает идеально.Но поле автозаполнения - это просто текстовое поле, ничего не отображается.И я не могу понять, почему.

При просмотре исходного кода, jQuery включен нормально (очевидно, потому что DatePicker работает), и события были настроены:

$(document).ready(function() {

$("#date1").datepicker({});
$("#ac1").autocomplete({"source":["New York","Berlin","Bern","Boston"]});

});

Это в шапке:

<script type="text/javascript" src="/js/jquery/js/jquery-1.4.2.min.js"></script>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/jquery-ui.min.js"></script>

И правильное поле есть:

<input type="text" name="ac1" id="ac1" value="" />

Я ошеломлен!Пожалуйста, помогите.

Ответы [ 2 ]

1 голос
/ 04 мая 2012

Вам нужна правильная версия JQuery, чтобы использовать функцию автозаполнения. Вместо этого, если включить локально, вы можете определить номера версий с помощью ZendX JQuery API, что более элегантно:

<?php echo $this->jQuery()->setVersion('1.7.1')->setUiVersion('1.8.2'); ?>

добавив эту строку в шаблоны представлений (рекомендуется использовать шаблон представления макета), будут включены соответствующие версии библиотек JQuery и JQueryUI. По умолчанию ZendX включает версию библиотек Google CDN.

Стоит также отметить, что ZendX можно заставить включать эти библиотеки во всех случаях, а не только тогда, когда ZendX считает это необходимым. Это может быть важно, если вы добавляете сценарии автозагрузки. Например, добавление этих строк в действии IndexController заставит ZendX постоянно включать соответствующие библиотеки.

$jquery = $this->view->jQuery();
$jquery->enable();
$jquery->uiEnable();
0 голосов
/ 18 августа 2010

Просто понял, что библиотека кода для jquery ui, которая была автоматически включена (из библиотек кода Google), не имела функции автозаполнения. Вам необходимо вручную установить localPath:

$this->jQuery ()->setUiLocalPath('/js/jquery/js/jquery-ui-1.8.2.custom.min.js');
...