Autopopulate a SharePoint Form from URL
March 11th, 2010
This post builds off of my previous post about making fields read only. In this case, I needed to autopopulate the NewForm.aspx with a value that gets passed to the form via URL parameters.
Experiences with SharePoint, web development, and programming
This post builds off of my previous post about making fields read only. In this case, I needed to autopopulate the NewForm.aspx with a value that gets passed to the form via URL parameters.
I was developing an input form for a search when I came across the need to allow the user to filter items using a date range. I had two input boxes where the user could enter a start and an end date. For some of the most common date ranges, I decided to create links that could be clicked to auto-populate the start/end date textboxes. For example, searching for items that were created last week or last month. Using JavaScript’s Date object, I was able to put together some nice examples.
After looking at a couple of examples online, most of them require the use of SharePoint Designer to make a field read only (or to hide it). Here is a method to make a field readonly using only Prototype (javascript library) and a Content Editor Web Part
Strangely, Prototype’s documentation for Element.insert does not have any examples, so I cooked something up quick:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Template</title> <script type="text/javascript" src="prototype.js"></script> <script type="text/javascript"> Event.observe(window, 'load', function() { // Using Element.insert to insert after, before, top, or bottom Element.insert($('para1'), { before: "<p>This is paragraph zero.</p>" }); Element.insert($('para1'), { after: "<p>This is paragraph two.</p>" }); // notice we have to insert using the content container Element.insert($('content'), { top: "<p>This is the first paragraph.</p>" }); Element.insert($('content'), { bottom: "<p>This is the last paragraph</p>" }); }); </script> </head> <body> <div id="content"> <p id="para1">This is paragraph one.</p> <p id="para3">This is paragraph three.</p> </div> </body> </html>