我的自定义类型中的RelationChoice小部件正常工作,直到collective.js.jqueryui autocomplete
启用,然后它停止工作,即停止进行关系查找;当你输入字段时没有任何反应。
(在网站的另一部分,我使用collective.js.jqueryui autocomplete
使用Google Maps API在用户填写地址字段时返回地址建议。)
当前的解决方法是在我想使用RelationChoice小部件时禁用collective.js.jqueryui autocomplete
(并在之后重新启用)。不是一个好的解决方案。
Independantly:
plone.formwidget.autocomplete/jquery.autocomplete.min.js
我的Google地图查找不会触发(请参阅下面的代码),但RelationChoice小部件可以正常工作collective.js.jqueryui autocomplete
我的Google地图查找有效,但RelationChoice小部件无法启动代码示例:
$(document).ready(function() {
initialize();
$(function() { // Google maps lookup
$("#address").autocomplete({
//This bit uses the geocoder to fetch address values
source: function(request, response) {
geocoder.geocode( {'address': request.term}, function(results, status) { ...
... <input type="text" name="address" id="address" autocomplete="off" class="ac_input">
我可以在上面的代码中重用plone.formwidget.autocomplete/jquery.autocomplete.min.js
吗?我不知道如何让它解雇我的Google地图查找...? (collective.js.jqueryui autocomplete
启用后会成功激活上述功能。)
答案 0 :(得分:2)
Contenttree小部件基于自动完成小部件。
自动完成小部件与jqueryui自动完成插件冲突。
使用collective.js.jqueryui可以使用portal_registry取消激活自动完成插件。
多年来,ploneformwidget.autocomplete被jqueryui打破了。有一个plone.formwidget.autocomplete的分支,它基于jqueryui(分支2.0),但我还没有用contenttree小部件测试它。
所以要解决你的问题:转到jqueryui controlpanel并取消选中自动完成插件。
答案 1 :(得分:2)
第一部分是,在包中完全启用jQuery ui效果。存在名称空间问题和缺少文件,导致.effects() is not a function
。
首先,将正确的jQueryUI版本cd下载到其中
jquery=/buildout_dir/parts/omelette/collective/js/jqueryui
cp jquery.ui.effect.min.js $jquery/js/jquery.ui.effect.core.min.js
然后cd进入$jquery
目录并将所有效果包转换为正确的命名空间。例如:
mv js/jquery.ui.effect-highlight.min.js js/jquery.ui.effect.highlight.min.js
然后将所有effects
替换为effect
$jquery/config.py
。在vim中使用
:1,$s/effects/effect/g
其次,要启用基于jQuery的自动完成小部件,请进入buildout的src目录并
git clone https://github.com/plone/plone.formwidget.autocomplete.git plone.formwidget.autocomplete
git checkout jqueryui-autocomplete
然后修改您的versions.cfg
。对我来说
plone.formwidget.autocomplete >= 2.0
的工作原理。然后修改buildout.cfg
并在zcml
和develop
下添加该包。我做了一个扩建,但它可能足以重启Zope。显然,最后一步是访问门户网站安装程序并重新安装产品。
<强>更新强>
如评论中所述,它没有完全发挥作用。我还需要修改一个.js文件,即autocomplete.js
包中的plone.formwidget.autocomplete
。结果如下
这一切使得RelationChoiceWidget和AutocompleteWidget在一个表单中一起工作 。我喜欢。
我还在github上为jQueryUI包提交了一个错误报告。
答案 2 :(得分:1)
更新(根据问题的更新):
参考Martin的教程和section about relations,Dexterity提取了plone.formwidget.contenttree,它提取了plone.formwidget.contenttree,它提取了plone.formwidget.autocomplete。
后者包括jQuery的自动完成源,collective.js.jqueryui也是如此,由map-product提取。很可能发生冲突。
试试这个:
转到http://yourhost.org:8080/yourSiteId/portal_javascripts/manage_workspace
取消选中'++ resource ++ plone.formwidget.autocomplete / jquery.autocomplete.min.js'并点击底部的保存。确保调试模式已打开(复选框位于最顶端)。