Thanks!! Im using SP2010 and the trick of pushing it into _spBodyOnLoadFunctionNames to make it run at the end of the other scripts was just what I was after! Cheers, Nigel
From: mda...@datacogs.com To: ozmoss@ozmoss.com Date: Thu, 17 Oct 2013 21:27:22 -0400 Subject: Re: Custom Javascript on form Another alternative is to use the _spBodyOnLoadFunctionNames array. See: http://www.stephanrocks.com/2011/10/05/_spbodyonloadfunctionnames-in-sharepoint-vs-jquerys-document-ready/ Also if you are using SharePoint 2013, the JSLink functionality can accomplish the same thing as what you are trying to achieve, but is much cleaner. http://www.martinhatch.com/2013/08/jslink-and-display-templates-part-1-overview-url-tokens-and-applying-jslink-to-objects.html MarkFrom: Matthew Cosier <cos...@gmail.com> Reply-To: ozMOSS <ozmoss@ozmoss.com> Date: Friday, 18 October 2013 11:22 AM To: ozMOSS <ozmoss@ozmoss.com> Subject: Re: Custom Javascript on form the document ready event will fire when the DOM is ready, however if you have external script libraries which perform asynchronous changes to the DOM, then this event is rendered nearly useless. You need to ensure that your script is fired on the result of that asynchronous change. In your case, I'm tipping it's probably SP.JS. To do this, you can use SP.SOD.executeOrDelayUntilScriptLoaded with SP.js as the target. On Fri, Oct 18, 2013 at 12:12 PM, Nigel Witherdin <nigel_wither...@hotmail.com> wrote: Hi All, Firstly - I know my javascript/jQuery is pretty terrible - please feel free to abuse me and give me examples of what I need to do better :) I am trying to use javascript to hide the "Name" field on a list form if the content type is of a specific type (I will set the Name value in the PreSaveAction when save is clicked). However when my $(document).ready function runs to do the check and hide the field, it runs before the List web part has added the field control objects to the DOM. I have tried using $(window).load as well. The closest I have come to making it work the way I want is to get the SELECT ctrl for the Content Type, and then override its onchange value. However then the function "ChangeContentType" is undefined: jQuery(document).ready(function() {var ctSelect = jQuery('table#formTbl > tbody > tr:nth-child(1) > td.ms-formbody > select');alert("Start);ctSelect.bind("onchange", function() {ChangeContentType(ctSelect.attr('id')); /* THIS IS UNDEFINED */ var contentTypeRow = jQuery('table#formTbl > tbody > tr:nth-child(1)');var nameRow = jQuery('nobr:contains("Name")').closest("tr") var ctSelectVal = jQuery('table#formTbl > tbody > tr:nth-child(1) > td.ms-formbody > select option:selected');alert(ctSelectVal.text());// If this is Lease Matrix Document Setif (ctSelectVal.text() == "Lease Matrix Document Set") {contentTypeRow.hide();nameRow.hide();}return false;});}); Can someone point me in the right direction? Cheers, Nigel _______________________________________________ ozmoss mailing list ozmoss@ozmoss.com http://prdlxvm0001.codify.net/mailman/listinfo/ozmoss _______________________________________________ ozmoss mailing list ozmoss@ozmoss.com http://prdlxvm0001.codify.net/mailman/listinfo/ozmoss
_______________________________________________ ozmoss mailing list ozmoss@ozmoss.com http://prdlxvm0001.codify.net/mailman/listinfo/ozmoss