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);
}
});
}
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.
$ 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.
Sounds like you need to include jquery on your form.
Basically you just add jquery the same way you would any other javascript file.
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
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/