【问题标题】:jQuery autocomplete using data pulled from SharePoint list using ajax REST使用 ajax REST 从 SharePoint 列表中提取数据的 jQuery 自动完成
【发布时间】:2014-10-24 20:49:13
【问题描述】:

我需要向输入文本框添加自动完成功能。需要使用 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
});
}

到目前为止,我的代码无法正常工作,并且我的控制台中出现“Uncaught TypeError: Cannot read property 'label' of null”错误。我想知道我在这里做错了什么?谢谢!

【问题讨论】:

    标签: javascript jquery ajax rest sharepoint


    【解决方案1】:

    Autocomplete function 的源包含具有空值的元素时,会发生此错误。

    解决方案

    添加判断值是否不为空的条件:

    $.each(data.d.results, function (i, result) {
          if(result.Title) {
             myData.push(result.Title);
          }   
    }); 
    

    【讨论】:

    • 好点,因为我注意到它开始使用没有任何空值的标题,但它不适用于其余字段(列)可能包含空值(空行)。杰出的!谢谢!
    【解决方案2】:

    只需将代码插入

    $(document).ready(function () {
    

    //你的代码在这里 }

    【讨论】:

    • 这个 3 年前的问题已经有一个公认的答案,似乎已经解决了这个问题。你的回答甚至没有回答问题。请阅读How to answer a question
    猜你喜欢
    • 1970-01-01
    • 2016-09-20
    • 1970-01-01
    • 1970-01-01
    • 2013-01-07
    • 1970-01-01
    • 2012-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多