The Attachments field allows a user to attach one or more files to the list item.
This page contains a detailed description of the field properties and JavaScript samples which you can use with this field.
SharePoint Field |
General |
Title |
Control |
---|---|---|---|
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.
Note
The field is only accessible once the form is rendered, so all calls to the field must be inside fd.spRendered event:
fd.spRendered(function(){
//make field required
fd.field('Field1').required = true;
});
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'); }); //or fd.field('Field1').ready().then(function(field) { // alert when the field is ready alert('Field is fully loaded'); });
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
fd.field('Field1').value;
//get the file extension of the first file
fd.field('Field1').value[0].extension;
//get the file name of the second file
fd.field('Field1').value[1].name;
Execute a function when a field value has been changed:
fd.field('Field1').$on('change', function(value) { //log new value to browser's console console.log(value); });
Make a field required or optional:
//make field required fd.field('Field1').required = true; //make field not required fd.field('Field1').required = false;
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;
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 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;
You can access the widget used by the field. The widget is based on Kendo UI Upload.
// get the widget
fd.field('Field1').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>" +
"</div>"
}
widgetOptions is the same as widget.setOptions({}) but can be defined before widget initialization.
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';