As a quick and dirty way you can use Script Editor webpart and jQuery:
- Open new\edit\display list form, click Edit Page
- Add Script Editor webpart, preferably below your "main" form webpart
- Add one of the following lines to the Script Editor web part, depending on whether you want to find fields (that will be preceded by your captions) by display name or by internal.
- on New and Edit forms, by internal name:
<script type="text/javascript" src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script language="javascript" type="text/javascript">
var partOne = 'Field1InternalName'
var partTwo = 'Field4InternalName'
_spBodyOnLoadFunctionNames.push("BodyOnLoad");
function BodyOnLoad(){
jQuery("input[id^='" + partOne + "']").closest("tr").before("<b>Part One</b><br/>");
jQuery("input[id^='" + partTwo + "']").closest("tr").before("<b>Part Two</b><br/>");
}
</script>
- on New and Edit forms, by display name:
<script type="text/javascript" src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script language="javascript" type="text/javascript">
var partOne = 'Field1DisplayName'
var partTwo = 'Field4DisplayName'
_spBodyOnLoadFunctionNames.push("BodyOnLoad");
function BodyOnLoad(){
jQuery("td.ms-formlabel:has(span:has(nobr:contains('" + partOne + "')))").closest("tr").before("<b>Part One</b><br/>");
jQuery("td.ms-formlabel:has(span:has(nobr:contains('" + partTwo + "')))").closest("tr").before("<b>Part Two</b><br/>");
}
</script>
- on Display form, by internal name:
<script type="text/javascript" src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script language="javascript" type="text/javascript">
var partOne = 'Field1InternalName'
var partTwo = 'Field4InternalName'
_spBodyOnLoadFunctionNames.push("BodyOnLoad");
function BodyOnLoad(){
jQuery("a[name='SPBookmark_" + partOne + "']").closest("tr").before("<b>Part One</b><br/>");
jQuery("a[name='SPBookmark_" + partTwo + "']").closest("tr").before("<b>Part Two</b><br/>");
}
</script>
- on Display form, by display name:
<script type="text/javascript" src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script language="javascript" type="text/javascript">
var partOne = 'Field1DisplayName'
var partTwo = 'Field4DisplayName'
_spBodyOnLoadFunctionNames.push("BodyOnLoad");
function BodyOnLoad(){
jQuery("td.ms-formlabel:has(span:contains('" + partOne + "'))").closest("tr").before("<b>Part One</b><br/>");
jQuery("td.ms-formlabel:has(span:contains('" + partTwo + "'))").closest("tr").before("<b>Part Two</b><br/>");
}
</script>