icon Managed Metadata

The Managed Metadata field is a special kind of field that enables site users to select terms from a specific term set. A Managed Metadata column can map to an existing term set, or you can create a local term set specifically for the column.

Managed Metadata field preview

More about it, in Create a Managed Metadata column article.

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.

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 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 selected option as a text string
    alert(field.value.value.name);
});
//or
fd.field('Field1').ready().then(function(field) {
    // alert selected option as a text string
    alert(field.value.value.name);
});

Get or set field value

Access and change field value with the following property:

// returns an object
fd.field('TaxonomySingle').value;

// returns the name of the selected option
fd.field('TaxonomySingle').value.name;

// returns the ID of the selected option
fd.field('TaxonomySingle').value.id;

//set element with the an object:
fd.field('TaxonomySingle').value = {
    id: "ac68fff3-2826-48f1-8d24-3fadad9533f0",
    name: "Test1"
};

// returns an array of objects
fd.field('TaxonomyMulti').value;

// returns the name of the first selected option
fd.field('TaxonomyMulti').value[0].name;

// returns the ID of the first selected option
fd.field('TaxonomyMulti').value[0].id;

//returns all selected options as a text string
var terms = fd.field('TaxonomyMulti').value;
var s = '';
for (var i = 0; i < terms.length; i++) {
    s += terms[i].name + '; ';
}
alert(s);

//set element with the an array:
fd.field('TaxonomyMulti').value = [{
    id: "ac68fff3-2826-48f1-8d24-3fadad9533f0",
    name: "Term1"
},
{
    id: "53e1c22e-bfc4-4172-81ff-806415606837",
    name: "Term2"
}];

Get the display value

Access the display value with the following property:

//returns selected choice as a string
fd.field('Field1').displayValue;

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
    console.log(value);
});

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.

fd.field('Field1').clear();