2010-08-17 33 views
1

我正在建立我的第一个ZendX_JQuery_Form。 在我的控制器中,我有以下代码:为什么ZendX Autocomplete不起作用?

$ 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(数组(' $ form-> addElement($ elem); $ this-> view-> form = $ form;

而且我包括我的自举所需的代码:

$视图 - > addHelperPath( “ZendX/JQuery的/查看/助手”, “ZendX_JQuery_View_Helper”);

所以DatePicker工作得很完美。 但是,自动完成字段只是一个纯文本框,没有任何显示。我无法弄清楚为什么。

查看源,被列入jQuery的OK(显然是因为工作的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="" /> 

我傻眼了!请帮忙。

回答

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(); 
0

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

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

考虑将此答案标记为“接受”,方法是单击旁边的“打勾”或“检查”图标 – 2012-08-18 13:15:18