CRM 2011 "$ is undefined"
Я создал следующий код, и я включил его как веб-ресурс в форме CRM 2011, который вызывается в поле onchange event поля поиска. Все работает отлично до строки $.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);
}
});
}
Ответы
Ответ 1
$является сокращением для jQuery. jQuery не входит в состав CRM2011, поэтому вам придется добавить веб-ссылку самостоятельно. Просто создайте веб-ресурс JavaScript для jQuery, вставьте код jQuery и добавьте веб-ресурс в свою форму. Кроме того, чтобы загрузить веб-ресурс в вашу форму, вам нужно указать функцию CRM для вызова из нее. Поскольку в этом случае jQuery является библиотекой, и вы не будете вызывать какие-либо ее функции onload, просто используйте isNaN (встроенную функцию JavaScript) как функцию для вызова.
Ответ 2
Форма лица, на которой вы работаете. Перейдите к настройке формы → Свойства формы.
Вы можете видеть файлы (.js), уже включенные для этой формы.
Нажмите "Добавить" (слева вверху).. и добавьте файл JQuery (например, JQuery1.4.4 или более позднюю версию), если в ваш CRM Webresources добавлен файл JQuery, если нет, то вам нужно добавить этот файл в CRM webresources первый.
Ответ 3
Похоже, вам нужно включить jquery в вашу форму.
В принципе, вы просто добавляете jquery так же, как и любой другой файл javascript.
- Загрузите копию jquery (распакуйте, если zipped, вам нужен файл .js)
- Перейдите к веб-ресурсам в вашем решении.
- Нажмите кнопку "Создать" на панели инструментов
- Заполните форму
- Нажмите кнопку "Обзор" для поля "Загрузить файл"
- Выберите загруженный файл .js.
- Нажмите кнопку "Сохранить" на ленточной панели
- Нажмите кнопку "Опубликовать" на панели "Лента"
Добавьте свой вновь созданный веб-ресурс в свою форму (в разделе "Свойства формы" ).
Убедитесь, что это первая библиотека, указанная в вашей форме.
Вам не нужно ничего в обработчиках событий для 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 для доступа к элементам формы.
Единственное поддерживаемое использование jQuery в сети Microsoft Dynamics CRM 2011 приложение должно использовать метод jQuery.ajax для извлечения данных из
конечная точка REST. Дополнительные сведения см. В разделе Использование jQuery.
Использование jQuery для изменения Microsoft Dynamics CRM 2011 страницы приложений или формы не поддерживаются.
Вы можете использовать jQuery в своих собственных веб-ресурсах HTML.
http://msdn.microsoft.com/en-us/library/gg328261.aspx#BKMK_UsingjQuery >
Используйте конечную точку REST с помощью веб-ресурсов Ajax и JScript
http://msdn.microsoft.com/en-us/library/1bb82714-1bd6-4ea4-8faf-93bf29cabaad#BKMK_UsingJQuery
CRM 2011 Полезный JavaScript Tidbits
Вызовите событие onchange поля
http://www.powerobjects.com/blog/2011/01/14/crm-2011-useful-javascript-tidbits/