icon Attachments

The Attachments field allows a user to attach one or more files to the list item.

Attachments field preview

This page contains a detailed description of the field properties and JavaScript samples which you can use with this field.

Common Properties

JavaScript framework

In this section, you can find basic examples of how to work with the SharePoint fields using JavaScript.

For more examples, check out Working with form fields in JavaScript article. If you are not familiar with the JavaScript framework, get started with the JavaScript basics.


The field is only accessible once the form is rendered, so all calls to the field must be inside fd.spRendered event:

    //make field required
    fd.field('Field1').required = true;

Wait until field is ready

Wait until the field is loaded. The ready method returns a promise that is resolved when the field has been fully initialized and is ready to work with.

fd.field('Field1').ready(function(field) {
    // alert when the field is ready
    alert('Field is fully loaded');
fd.field('Field1').ready().then(function(field) {
    // alert when the field is ready
    alert('Field is fully loaded');

Get or set field value

Get or set the field’s value. The Attachments field value is stored as an array of objects:

//return field value as an array of objects

//get the file extension of the first file

//get the file name of the second file

Handle change event

Execute a function when a field value has been changed:

fd.field('Field1').$on('change', function(value) {
    //log new value to browser's console

Make field required

Make a field required or optional:

//make field required
fd.field('Field1').required = true;

//make field not required
fd.field('Field1').required = false;

Disable field

Make a field non-editable. The field value can still be changed with JavaScript and saved:

//disabled field
fd.field('Field1').disabled = true;

//enable field
fd.field('Field1').disabled = false;

Get HTML element

Access HTML element inside the field in order to modify it, hide it, or do something else.

//access field's control
var htmlField = fd.field('Field1').$el;

//access field's block, which includes title and control
var htmlFullField = fd.field('Field1').$parent.$el;

Hide field

Hide a field from a user. The field value can still be accessed and changed with JavaScript.

//hide field
fd.field('Field1').hidden = true;

//show field
fd.field('Field1').hidden = false;

Clear field

Clear field value.


Cоnfigure widget

You can access the widget used by the field. The widget is based on Kendo UI Upload.

// get the widget

// change the widget's configuration
fd.field('Field1').widgetOptions = {
    template:   "<div><p>Name: #=name#</p>" +
                "<p>Size: #=size# bytes</p><p>Extension: #=files[0].extension#</p>" +
                "<strong class='k-upload-status'>" +
                "<button type='button' class='k-upload-action'></button>" +
                "<button type='button' class='k-upload-action'></button>" +
                "</strong>" +

widgetOptions is the same as widget.setOptions({}) but can be defined before widget initialization.

Change error text

Get or set text for error messages. Useful for localizations.

// set the text for the error message if the file with this name already exists
fd.field('Field1').fileAlreadyExistsText = 'Change the file name';

//set the text for the error message if the file name contains invalid characters
fd.field('Field1').fileNameInvalidText = 'File name contains invalid characters';