为什么ZendX Autocomplete不起作用?

时间:2010-08-17 08:38:53

标签: jquery zend-framework zendx

我正在设置我的第一个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'))); $形式 - >的addElement($ ELEM); $ 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 个答案:

答案 0 :(得分:1)

您需要正确版本的JQuery才能使用自动填充功能。相反,如果包含在本地,您可以使用ZendX JQuery API定义版本号,这更优雅:

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

将此行添加到视图模板(建议使用布局视图模板),将包含相应版本的JQuery和JQueryUI库。默认情况下,ZendX将包含库的Google CDN版本。

值得注意的是,可以强制ZendX在所有情况下都包含这些库,而不仅仅是在ZendX认为必要时。如果您要添加autoLoad脚本,这可能很重要。例如,在IndexController操作中添加这些行将使ZendX始终包含相应的库。

$jquery = $this->view->jQuery();
$jquery->enable();
$jquery->uiEnable();

答案 1 :(得分:0)

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

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