我正在使用django-autocomplete-light来渲染一些自动完成选项。
我在网站上有一个地方,它可以毫无障碍地工作,但还有另一个地方,它不起作用,实际上它是部分工作。
自动填充选项渲染得很好,但当用户点击其中一个时,它会抛出:
未捕获TypeError:对象[object Object]没有方法'yourlabsWidget'
有什么区别?
在完整的页面上,我正在渲染整个表单。在这个小部件中,我只使用了成语{{form.field}}中的字段。
修改
来自django-autocomplete-light的javascript文件在两个页面上都正常加载。
任何人都有线索?
编辑2
<head>
<script type="text/javascript" src="/static/js/jquery/jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="/static/js/jquery/jquery-ui-1.9.2.custom.min.js"></script>
<script type="text/javascript" src="/static/js/bootstrap/bootstrap.min.js"></script>
<link rel="stylesheet" type="text/css" href="/static/css/jquery/jquery-ui-1.9.2.custom.min.css">
<link rel="stylesheet" type="text/css" href="/static/css/bootstrap/bootstrap.css">
<link rel="stylesheet" type="text/css" href="/static/css/main.css">
<script type="text/javascript" src="/static/autocomplete_light/autocomplete.js"></script>
<script type="text/javascript" src="/static/autocomplete_light/widget.js"></script>
<script type="text/javascript" src="/static/autocomplete_light/addanother.js"></script>
<script type="text/javascript" src="/static/autocomplete_light/text_widget.js"></script>
<script type="text/javascript" src="/static/autocomplete_light/remote.js"></script>
<link rel="stylesheet" type="text/css" href="/static/autocomplete_light/style.css">
<script data-main="/static/js/rotas.js/main.js" src="/static/js/require/require.js"></script>
<script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="main" src="/static/js/rotas.js/main.js"></script>
答案 0 :(得分:4)
如果yourlabsAutocomplete扩展已正确添加到jquery实例,然后变为未定义:另一个jquery被加载到前一个jquery之上。
如果使用require.js,则:
如果有疑问,请从生成的页面中提取<script>
标记,然后使用firebug或webkit检查器检查jquery是否加载了两次。
django-autocomplete-light并不打算搞乱你的jquery / javascript策略。因此,它没有理由妨碍你 - 如果它确实那么它意味着你的javascript加载策略中出现了问题。