13

我创建了以下代码,并将其作为 Web 资源包含在 CRM 2011 表单中,以便在查找字段的字段 onchange 事件中调用。行前一切正常$.ajax({...,然后出现错误“<code>$ is undefined”。我对脚本不是很熟悉,所以请帮忙。

function GetAddress() {

    var accountId;
    var dataArray;
    var accountRequestUrl;

    if (crmForm.all.regardingobjectid.DataValue != null) {

        dataArray = crmForm.all.regardingobjectid.DataValue;
        accountId = dataArray[0].id;

        if (typeof GetGlobalContext == "function") {
            var context = GetGlobalContext();
            accountRequestUrl = context.getServerUrl();
        }
        else {
            if (typeof Xrm.Page.context == "object") {
                accountRequestUrl = Xrm.Page.context.getServerUrl();
            }
        }

        accountRequestUrl = Xrm.Page.context.getServerUrl();
        accountRequestUrl += "/XRMServices/2011/OrganizationData.svc/AccountSet(guid'" +
            accountId + "')";

        crmForm.all.maxlife_addressname.DataValue = accountRequestUrl;

        GetAccountRecord(accountRequestUrl);
    }
    else {
        alert("null");
    }

}

function GetAccountRecord(accountRequestUrl) {

    $.ajax({
        type: "GET",
        url: accountRequestUrl,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        error: function (request, textStatus, errorThrown) {
            alert("Error occurred: " + request.responseXML + "from url " + requestUrl);
            return;
        },
        success: function (data) {
            var results = data.d["results"];
            var AccountValue = new Array();
            for (resultKey in results) {
                AccountValue.push(results[resultKey]);
            }

            FillValues(AccountValue);
        }
    });
}
4

3 回答 3

25

$ 是 jQuery 的简写。jQuery 本身并不包含在 CRM2011 中,因此您必须自己添加 Web 引用。只需为 jQuery 创建一个 JavaScript Web 资源,粘贴 jQuery 代码,然后将 Web 资源添加到您的表单中。此外,为了让 Web 资源加载到您的表单上,您需要指定一个函数让 CRM 从中调用。由于在这种情况下 jQuery 是一个库,并且您不会在加载时调用它的任何函数,因此只需使用 isNaN(本机 JavaScript 函数)作为要调用的函数。

于 2011-03-02T14:14:36.750 回答
1

您正在处理的实体表单。转到表单自定义-> 表单属性。您可以看到已包含在该表单中的 Files(.js)。

单击“添加”(左上角)。如果在您的 CRM Webresources 中添加了 JQuery 文件,则添加 JQuery 文件(如 JQuery1.4.4 或更高版本),如果没有,则需要先在 CRM Webresources 中添加此文件。

于 2013-04-10T07:44:27.077 回答
0

听起来您需要在表单中包含 jquery。

基本上,您只需像添加任何其他 javascript 文件一样添加 jquery。

  • 下载 jquery 的副本(如果压缩,则解压缩,您需要 .js 文件)
  • 导航到解决方案中的 Web 资源
  • 单击工具栏中的新建按钮
  • 填写表格
  • 单击上传文件框的浏览按钮
  • 选择您下载的 .js 文件
  • 单击功能区栏中的保存按钮
  • 单击功能区栏中的发布按钮

将新创建的 Web 资源添加到表单(在表单属性下)。
确保这是您的表单中列出的第一个库。
您不需要 jquery 的事件处理程序中的任何内容,只需像往常一样从您的任何自定义库中调用它。

请记住,您可能想要使用 jquery 的许多事情可能不受支持。Microsoft 希望您使用 Xrm.Page 对象:
使用 Xrm.Page 对象模型
http://msdn.microsoft.com/en-us/library/gg328474.aspx

根据 Microsoft:
使用 jQuery
不要使用 jQuery 与 Microsoft Dynamics CRM 2011 表单进行交互。
使用 Xrm.Page 对象模型方法访问表单元素。
Microsoft Dynamics CRM 2011 Web 应用程序中唯一受支持的 jQuery 使用
是使用 jQuery.ajax 方法从
REST 端点检索数据。有关更多信息,请参阅使用 jQuery。
不支持使用 jQuery 修改 Microsoft Dynamics CRM 2011 应用程序页面或表单。
您可以在自己的 HTML Web 资源页面中使用 jQuery。
http://msdn.microsoft.com/en-us/library/gg328261.aspx#BKMK_UsingjQuery>

将 REST 端点与 Ajax 和 JScript Web 资源一起使用
http://msdn.microsoft.com/en-us/library/1bb82714-1bd6-4ea4-8faf-93bf29cabaad#BKMK_UsingJQuery

CRM 2011 有用的 JavaScript 花絮
调用字段的 onchange 事件
http://www.powerobjects.com/blog/2011/01/14/crm-2011-useful-javascript-tidbits/

于 2014-02-14T16:27:52.707 回答