- Open the "New Form" for the list and remove all query string variables (should end up with http://server/site/listname/NewForm.aspx)
- Append "?ToolPaneView=2" onto the end of the url (http://server/site/listname/NewForm.aspx?ToolPaneView=2)
Note: this places the page into "Add a Web Part" view
- Add a new "Content Editor Web Part"(CEWP) to the page after the existing web part
- Modify the source view of the CEWP to include this code:
- Follow the "Usage notes" to add calls to the disableControls, hideControls, or hideControlsAfter functions which will modify the fields displayed on the page
Note: you can find the values to put in place of "Field Name 1" and "Field Name 2" by viewing the source view for the page and searching for: FieldName="
The value within the double quotation marks will be what you enter inside the arrays in the hide/disable function calls.
- In the CEWP's tool pane, add security groups or audiences which should have the fields hidden/disabled to the "Target Audience" setting
- Save the web part properties, and click the "Exit Edit Mode" link in the upper right below "Site Actions".
This solution now hides/disables fields specified within the original list input form, which retains the attachment functionality, while being able to easily make modifications when new fields are added/modified based on column ordering.
However, there are some limitations to this method. None of which were show stoppers for me, since this method is very easy to undo (simply remove the CEWP from the forms). Especially in the interim until Microsoft is able to fix this little problem and offer a clean, efficient, and effective method of customizing input forms. These limitations are:
- Security groups or audiences need to be created for the group of users which should have limited access to list fields, which excludes the users with access to the restricted fields.
- You cannot make any of the hidden/disabled fields required unless you specify default values, as the fields will still remain on the page and submit data, they are just hidden to the user
- Information in these fields is still visible to users if the columns are displayed within list views, as well as Source View of the input form