“自动完成不是一个功能”Javascript错误

时间:2014-06-21 14:32:07

标签: javascript grails autocomplete

在我的Grails项目(版本2.2.1)中,我在两个不同的GSP页面中使用以下Javascript代码。

<g:javascript>
$(document).ready(function() {
    $.ajax({
        type: "GET",
        url: "/medicalOfficeManager/Patient/getAllPatients",
        dataType: "json",
        success : function(response) {
            //Create a map.
            var data =
                    $.map(response, function(item){
                        console.log("id: " + item.id);
                        console.log("name: " + item.surname + " "+ item.name);
                        return{
                            id: item.id,
                            value: item.surname + " " + item.name
                        }
                    });


            $("#patient_textField").autocomplete({
                source: data,
                select: function (event, ui){
                    console.log("selected id:" + ui.item.id);
                    console.log("selected name:" + ui.item.value);

                    //when a country is selected(ie: type China and press enter),
                    //change the value of hidden field to the country's id.
                    $('#patient_id').val(ui.item.id);
                    console.log("patient value = "+ $('#patient_id').val());
                }
            });

        }
    });

});
</g:javascript>

在一个GSP中,一切都按预期工作,另一个,看着Javascript控制台,我有以下错误:

  

$(...)。autocomplete不是函数

我已阅读this次讨论,但这对我不起作用。

有什么建议吗?

编辑:我注意到页面之间的唯一区别是,在不工作的页面中,它加载了bundle-bundle_core_head.js,但是我没有看到它在gsp页面中的加载位置...

EDIT2:其他gsp中有一个组件加载包含早期版本的JQuery和JQuery UI,但我需要该组件,因为如果我发表评论,另一个允许我选择日期和时间的字段不起作用。可以同时使用两者吗?

1 个答案:

答案 0 :(得分:1)

autocomplete函数可能由一个jQuery插件提供,您将其包含在一个页面中,而不是另一个页面。查看每个页面的来源并比较每个页面中的<script>元素。