The Choice field allows a user to choose from a predefined list of options.
In the SharePoint column settings, you can choose how the field appears on the form:
Drop-down menu
Radio buttons
For a Drop-down display format, you can also define whether a user is allowed to select a single option or multiple options.
Tip
In Plumsail Forms, by changing the Display property, you can make a multiple-choice field appear as a checkboxes:
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 |
---|---|---|---|
Here you can find properties related to the Choice field.
The property defines how the choice field that allows multiple selections appears on a form:
For radio buttons and checkboxes, you can specify the layout of the options.
By default, the options are grouped into three columns.
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;
});
Get or set the field’s value that allows selection of only one option:
//return field value as a string
fd.field('Field1').value;
//set field value
fd.field('Field1').value = 'Item 1';
Get or set the field’s value that allows multiple selections:
//return field value as an array of string
fd.field('Field1').value;
//set field value
fd.field('Field1').value = ['Item 1', 'Item 2'];
Returns the formatted value of a field when it is displayed on the Display form or is in read-only mode.
//returns selected choice as a string fd.field('Field1').displayValue;
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 DropDownList in regular mode, with allow user value option enabled it is based on Kendo UI ComboBox, and in multiple selection mode it is based on Kendo UI MultiSelect.
// get the widget
fd.field('Field1').widget;
// change the widget's configuration
fd.field('Field1').widgetOptions = { template: '<span style="font-weight: bold">#: data #</span>' }
widgetOptions is the same as widget.setOptions({}) but can be defined before widget initialization.
For radio buttons and checkboxes, specify the number of columns by which the options will be grouped:
//group by 2 columns
fd.field('Field1').columnsNumber = 2;
If you want to change option colors without changing the options, try the following, just replace Your option with actual value:
//get option colors fd.field('Field1').optionsColors['Your option'].backgroundColor fd.field('Field1').optionsColors['Your option'].textColor //set option colors: fd.field('Field1').setOptionColors('Your option', {textColor: '#ffffff', backgroundColor: '#ebb65e'})
For multiple selection mode, you can limit the number of selectable options with field validation:
//prevent user from selecting more than 3 options fd.field('Field1').addValidator({ name: 'Field1 options validation', error: 'No more than 3 options', validate: function(value){ if(value.length > 3){ return false; } return true; } });