在我的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,但我需要该组件,因为如果我发表评论,另一个允许我选择日期和时间的字段不起作用。可以同时使用两者吗?
答案 0 :(得分:1)
autocomplete
函数可能由一个jQuery插件提供,您将其包含在一个页面中,而不是另一个页面。查看每个页面的来源并比较每个页面中的<script>
元素。