我正在设置我的第一个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="" />
我傻眼了!请帮忙。
答案 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');