我需要在输入文本框中添加自动完成功能。需要使用AJAX / REST从SharePoint获取数据。
这是我迄今为止所做的:
JS
var myData = [];
var requestHeaders = {
"accept": "application/json;odata=verbose"
}
$.ajax({
url: "https://my-URL/sites/RMA-GFPLC/_api/web/lists/GetByTitle('AD_DB')/items? $select=Title,Regional_x0020_Office,Commodity,Commodity_x0020_Year,StateLookUp/Title&$expand=StateLookUp",
type: 'GET',
dataType: 'json',
async: false,
headers: requestHeaders,
success: function (data) {
$.each(data.d.results, function (i, result) {
myData.push(result.Title);
});
myDataSource(myData);
},
error: function ajaxError(response) {
alert(response.status + ' ' + response.statusText);
}
});
function myDataSource(myData){
$('#myAutoCompleteSearch').autocomplete({
source: myData,
minLength: 3
});
}
到目前为止,我的代码无效,而且我得到了#34; Uncaught TypeError:无法读取属性'标签' of null"我的控制台出错了。我想知道我在这里做错了什么?谢谢!
答案 0 :(得分:2)
当Autocomplete function的源包含具有空值的元素时,会发生此错误。
<强>解决方案强>
添加条件以检查value是否为null:
$.each(data.d.results, function (i, result) {
if(result.Title) {
myData.push(result.Title);
}
});
答案 1 :(得分:-1)
Jast在
中插入您的代码$(document).ready(function () {
//你的代码在这里 }