I have a view form in a list. I want to add a dropdown and populate that dropdown from Another list, so I added a scripteditor in my viewform and added the code below. I can get my code to run when I have the page in edit mode, but not when I open the form.
I've tried to disable the "Minimal download strategy"
I get an errormessage in the browsers debugger when I run the code normally:
Error: Unable to get property 'isNullOrUndefined' of undefined or null reference in sp.js file.
CODE:
<button class="ms-Button ms-Button--hero"> <span class="ms-Button-icon"><i class="ms-Icon ms-Icon--plus"></i></span> <span class="ms-Button-label">Add Role</span> <span class="ms-Button-description">Adds a role to this service</span> </button>
<select id="rolesSelect"></select>
<script type="text/javascript">
ExecuteOrDelayUntilScriptLoaded(retrieveCurrentListProperties, "SP.js");
function retrieveCurrentListProperties() {
var clientContext = new SP.ClientContext("/sites/documentation");
var oList = clientContext.get_web().get_lists().getByTitle("Roles");
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml('<View><Query></Query></View>');
this.collListItem = oList.getItems(camlQuery);
clientContext.load(collListItem);
clientContext.executeQueryAsync(onQuerySucceeded, onQueryFailed);
}
function onQuerySucceeded()
{
var listItemInfo = '';
var listItemEnumerator = collListItem.getEnumerator();
$("#rolesSelect").append('<option value=""></option>');
while (listItemEnumerator.moveNext())
{
var oListItem = listItemEnumerator.get_current();
$("#rolesSelect").append('<option value="' + oListItem.get_item("Title") + '">'+ oListItem.get_item("Title") +' </option>');
}
}
function onQueryFailed(sender, args)
{
alert('Request failed. ' + args.get_message() +
'\n' + args.get_stackTrace());
}
</script>
What am I'm doing wrong??