1

调用该函数时,我在此函数上收到“对象不支持此方法”错误

function LoadCat(cat) {

        if (cat != null) {
            var liHtml = "Category:  <select name=\"categoryselect\" id=\"categoryselect\">";
        var CAML = '<Query><Where><Eq><FieldRef Name="Department" /><Value Type="Text">' + cat + '</Value></Eq></Where></Query>';
        alert(CAML);
        } else {
        alert(cat);
        var CAML = '';
        }




       $().SPServices({
        operation: "GetListItems",
        async: false,
        webURL: "http://sp-app",
        listName: "Categories",
        CAMLViewFields: "<ViewFields><FieldRef Name='Title' /></ViewFields>",
        CAMLQuery: CAML,
        completefunc: function (xData, Status) {
            $(xData.responseXML).SPFilterNode("z:row").each(function () {
                liHtml = liHtml + "<option value=''>" + $(this).attr("ows_Title") + "</option>";

            });
            liHtml = liHtml + "</select>";
            $("#cat").html(liHtml);
        }

    });
    }

错误出现在 $().SPServices({ 行

当 cat 为 null 或有值时会发生这种情况。

几个小时以来一直在为此挠头!

在调用函数之前加载了 SharePoint 服务!

似乎只有当我在此函数上调用它时才会发生错误:

  $(".area").click(function () {


      $(".area").parent("li").removeClass("active");
      $(this).parent("li").addClass("active");

      LoadCat();

    });
4

1 回答 1

0
function LoadCat(cat) {
if (cat != null) {
        var liHtml = "Category:  <select name=\"categoryselect\" id=\"categoryselect\">";
    var CAML = '<Query><Where><Eq><FieldRef Name="Department" /><Value Type="Text">' + cat + '</Value></Eq></Where></Query>';
    alert(CAML);
    } else {
    alert(cat);
    var CAML = '';
    }

   $().SPServices({
    operation: "GetListItems",
    async: false,
    webURL: "http://sp-app",
    listName: "Categories",
    CAMLViewFields: "<ViewFields><FieldRef Name='Title' /></ViewFields>",
    CAMLQuery: CAML,
    completefunc: function (xData, Status) {
        $(xData.responseXML).SPFilterNode("z:row").each(function () {
            liHtml = liHtml + "<option value=''>" + $(this).attr("ows_Title") + "</option>";

        });
        liHtml = liHtml + "</select>";
        $("#cat").html(liHtml);
    }

});}
$(document).ready(function() {
    var subject = "Hi Subject!";
    var message = "Hi Message!";
    LoadCat(subject);        
});

查看浏览器中的 javascript 控制台,在那里您可以找到有用的错误。必须加载 jQuery 和 SPServices。对于您的测试,您甚至可以使用 jQuery 和 SPServices 的 cdn 链接。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery.SPServices/0.7.1a/jquery.SPServices-0.7.1a.min.js"></script>
于 2014-04-17T10:11:46.987 回答