2010-08-17 62 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