Use Case: Hiring Application form that needed to pull Resume attachment from Candidates list.
I first setup a calculated column that retrieves the ID from a Candidate Lookup List column. I set a Javascript variable to ‘cID’.
parseLookup(Candidate, False)
I then created a hidden Single Line Text box with a Javascript variable set to ‘rlink’
I added a Calculated Column that uses that ‘rlink’ field as it’s default value.
In the form’s custom Javascript settings, I have the following code:
(function getAttachments() {
var itemId = NWF$("#" + cID).val();
console.log(itemId);
var listName = "Candidates";
var url = _spPageContextInfo.webAbsoluteUrl;
var requestUri = url + "/_api/web/lists/getbytitle('" + listName + "')/items(" + itemId + ")/AttachmentFiles";
console.log(requestUri);
var str = "";
$.ajax({
url: requestUri,
type: "GET",
headers: { "ACCEPT": "application/json;odata=verbose" },
async: false,
success: function (data) {
for (var i = 0; i < data.d.results.length; i++) {
str += <a target='_blank' href='" + data.d.results[i].ServerRelativeUrl + "' rel="noopener">" + data.d.results[i].FileName + "</a>;
if (i != data.d.results.length - 1) {
str += "
";
}
}
},
error: function (err) {
}
});
NWF$("#" + rlink).val(str);
console.log(str);
})();
When a user views the application form, a link directly to any attachments will display.

