CRM 2011“$ 未定义”

发布于 2024-10-19 16:25:09 字数 1782 浏览 4 评论 0原文

我创建了以下代码,并将其作为 Web 资源包含在 CRM 2011 表单上,以便在查找字段的字段 onchange 事件上调用。在 $.ajax({... 行之前一切正常,然后出现错误“$ 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);
        }
    });
}

I have created following code, and I have included this as web resource on the CRM 2011 form to be called on field onchange event of lookup field. Everything is working fine before the $.ajax({... line and then I have an error “$ is undefined”.
I am not very familiar with scripting so please help.

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);
        }
    });
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

预谋 2024-10-26 16:25:09

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

$ is shorthand for jQuery. jQuery is not natively included in CRM2011, so you'll have to add a web reference yourself. Simply create a JavaScript web resource for jQuery, paste in the jQuery code, and then add the web resource to your form. Also, in order to get the web resource to load on your form, you need to specify a function for CRM to call from it. Since in this case jQuery is a library and you won't be calling any of its functions onload, simply use isNaN (a native JavaScript function) as the function to call.

骄兵必败 2024-10-26 16:25:09

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

如果您的 CRM Web 资源中添加了 JQuery 文件,请单击“添加”(左上方)...并添加 JQuery 文件(如 JQuery1.4.4 或更高版本),如果没有,则需要先将此文件添加到 CRM Web 资源中。

The entity form on which you are working. Go to Form customization->Form properties.
You can see the Files(.js) already included for that form.

Click on 'Add'(left top)..and add the JQuery file(like JQuery1.4.4 or higher version) if JQuery file is added in your CRM Webresources, if not then you need to add this file in CRM webresources first.

橘虞初梦 2024-10-26 16:25:09

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

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

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

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

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

根据微软的说法:
jQuery 的使用
请勿使用 jQuery 与 Microsoft Dynamics CRM 2011 表单交互。
使用 Xrm.Page 对象模型方法访问表单元素。
Microsoft Dynamics CRM 2011 Web 中唯一支持使用 jQuery
应用程序是使用 jQuery.ajax 方法从
检索数据
REST 端点。有关详细信息,请参阅使用 jQuery。
使用 jQuery 修改 Microsoft Dynamics CRM 2011
不支持申请页面或表格。
您可以在自己的 HTML 网页资源页面中使用 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/博客/2011/01/14/crm-2011-useful-javascript-tidbits/

Sounds like you need to include jquery on your form.

Basically you just add jquery the same way you would any other javascript file.

  • Download a copy of jquery (unzip if zipped, you need the .js file)
  • Navigate to Web Resources in your Solution
  • Click the New button in the toolbar
  • Fill in the form
  • Click the Browse button for the Upload File box
  • Select the .js file you downloaded
  • Click the Save button in the ribbon bar
  • Click the Publish button in the Ribbon bar

Add your newly created Web Resource to your form (Under Form Properties).
Be sure this is the first library listed on your form.
You don’t need anything in Event Handlers for jquery, just call it from any of your custom libraries as per usual.

Keep in mind that many of the things you may be tempted to use jquery for may not be supported. Microsoft wants you to use the Xrm.Page object:
Use the Xrm.Page Object Model
http://msdn.microsoft.com/en-us/library/gg328474.aspx

According to Microsoft:
Use of jQuery
Do not use jQuery to interact with Microsoft Dynamics CRM 2011 forms.
Use the Xrm.Page object model methods to access form elements.
The only supported use of jQuery in the Microsoft Dynamics CRM 2011 web
application is to use the jQuery.ajax method to retrieve data from
the REST endpoint. For more information, see Using jQuery.
Using jQuery to modify Microsoft Dynamics CRM 2011
application pages or forms is not supported.
You may use jQuery within your own HTML web resource pages.
http://msdn.microsoft.com/en-us/library/gg328261.aspx#BKMK_UsingjQuery>

Use the REST Endpoint with Ajax and JScript Web Resources
http://msdn.microsoft.com/en-us/library/1bb82714-1bd6-4ea4-8faf-93bf29cabaad#BKMK_UsingJQuery

CRM 2011 Useful JavaScript Tidbits
Call the onchange event of a field
http://www.powerobjects.com/blog/2011/01/14/crm-2011-useful-javascript-tidbits/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文