我创建了以下代码,并将其作为Web资源包含在CRM 2011表单中,以便在查找字段的字段onchange事件上调用。在$.ajax({...
行之前一切正常,然后我有一个错误“$
未定义”。
我不太熟悉脚本,所以请帮助。
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);
}
});
}
答案 0 :(得分:25)
$是jQuery的简写。 jQuery本身并不包含在CRM2011中,因此您必须自己添加Web引用。只需为jQuery创建JavaScript Web资源,粘贴jQuery代码,然后将Web资源添加到表单中。此外,为了在您的表单上加载Web资源,您需要为CRM指定一个函数来从中调用。因为在这种情况下jQuery是一个库,你不会调用它的任何函数onload,只需使用isNaN(本机JavaScript函数)作为调用函数。
答案 1 :(得分:1)
您正在使用的实体表单。转到表单自定义 - >表单属性。 您可以看到该表单已包含的文件(.js)。
单击“添加”(左上角)..并添加JQuery文件(如JQuery1.4.4或更高版本),如果在您的CRM Web资源中添加了JQuery文件,如果没有,则需要在CRM webresources中添加此文件第一
答案 2 :(得分:0)
听起来你需要在表单上包含jquery。
基本上你只需像添加任何其他javascript文件一样添加jquery。
将新创建的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 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/