使用ajax REST从SharePoint列表中提取数据的jQuery自动完成

时间:2014-10-24 20:49:14

标签: javascript jquery ajax rest sharepoint

我需要在输入文本框中添加自动完成功能。需要使用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"我的控制台出错了。我想知道我在这里做错了什么?谢谢!

2 个答案:

答案 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 () {

//你的代码在这里 }