1

我正在设置我的第一个 ZendX_JQuery_Form。在我的控制器中,我有以下代码:

$form = new ZendX_JQuery_Form ();

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

$elem = new ZendX_JQuery_Form_Element_AutoComplete('ac1', array('label' => 'Autocomplete:')); $elem->setJQueryParams(array('source' => array('New York','Berlin','Bern','Boston'))); $form->addElement($elem); $this->view->form = $form;

我在我的 Boostrap 中包含了所需的代码:

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

所以 DatePicker 工作完美。但 AutoComplete 字段只是一个纯文本框,没有任何显示。我不知道为什么。

查看源代码,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="" />

我傻眼了!请帮忙。

4

2 回答 2

1

您需要正确版本的 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();
于 2012-05-04T10:49:46.360 回答
0

刚刚意识到自动包含(来自Google代码库)的jquery ui代码库没有自动完成功能。您需要手动设置localPath:

$this->jQuery ()->setUiLocalPath('/js/jquery/js/jquery-ui-1.8.2.custom.min.js');
于 2010-08-18T02:12:04.850 回答