Django-autocomplete-light 给出 JavaScript 错误

django-autocomplete-light giving javascript errors

本文关键字:错误 JavaScript 给出 Django-autocomplete-light      更新时间:2023-09-26

我正在使用django-autocomplete-light来渲染一些自动完成选项。

我在网站上有一个地方可以顺利工作,但还有另一个地方,它不起作用,实际上它部分工作。

自动完成选项呈现得很好,但是当用户单击其中一个选项时,它会抛出:

未捕获的类型错误:对象 [对象对象] 没有方法"您的实验室小部件"

有什么区别?

在它工作的页面上,我完全呈现整个表单。在这个小部件中,我只使用成语 {{ 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>

如果您的labsAutocomplete扩展被正确地添加到jquery实例中,然后变得未定义:另一个jquery被加载到前一个jquery之上。

如果使用 require.js,则任一项:

  • 不要手动加载 jQuery,通过 require.js 加载 jQuery 自动完成脚本,
  • 要么不要通过require加载jQuery.js

如有疑问,请从生成的页面中提取<script>标签,并使用firebug或webkit检查器检查jquery是否加载了两次。

Django-autocomplete-light 不打算弄乱你的 jquery/JavaScript 策略。因此,它没有理由妨碍你 - 如果它这样做,那么这意味着你的javascript加载策略出了问题。