Link to Another Record
The Link to Another Record field allows to pick one or multiple of the entries from a different Airtable table.
This page contains a detailed description of the field properties and JavaScript samples which you can use with this field.
Common Properties
Airtable Field |
General |
Title |
Control |
---|---|---|---|
Link to Another Record Properties
Here you can find properties related to the Link to Another Record field.
Display field
Configure which of the target table’s fields will be shown in the dropdown.
Operator
Defines how the search is handled by the field:
StartsWith — only show items that start with the entered value.
Contains — show all items that contain the entered value.
Order by
Select a field to sort the available options by.
Order type
Determines how to sort data: in ascending or descending order.
Extra fields
By default, only the item ID and the displayed field are retrieved. The Extra fields property allows you to retrieve additional fields.
Specify which fields should also be returned from the source list:
JavaScript framework
In this section, you can find basic examples of how to work with the field 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.rendered event:
fd.rendered(() => {
// access the field's value and print in the browser's console
console.log(fd.field('Field1').value);
});
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(field => { // alert when the field is ready alert('Field is fully loaded'); }); // or fd.field('Field1').ready().then(field => { // alert when the field is ready alert('Field is fully loaded'); });
Get field value
Get the Link to Another Record field value. The field value is stored as an array of item IDs:
// get field value as an array of IDs fd.field('Field1').value; // get the first selected option's ID as a string fd.field('Field1').value[0];
Refresh the field
The function refreshes the connection with the source table.
If any items were changed in the source table, the data presented in the Link to Another Record field will be updated.
fd.field('Field1').refresh();
Handle change event
Execute a function when a field value has been changed:
fd.field('Field1').$on('change', value => {
// log changes to browser's console
console.log('New value: ' + 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
let htmlField = fd.field('Field1').$el;
// access field's block, which includes title and control
let 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;
Operator
Property defines how the search is handled by the lookup field:
StartsWith — only show items that start with the entered value.
Contains — show all items that contain the entered value.
fd.field('Field1').operator = 'startsWith'; fd.field('Field1').operator = 'contains';
Order by
Set $orderby Query option. Allows sorting the results by one or multiple fields.
// order by one field fd.field('Field1').orderBy = 'Title'; // order by one field in descending order. fd.field('Field1').orderBy = { field: 'Title', desc: true }; // order by multiple fields fd.field('Field1').orderBy = [ { field: 'FirstChoice', desc: true }, { field: 'Title', desc: false } ];