JavaScript/jQuery SelectBox - Create a User-Defined Item

A user can select existing values and add new values to the SelectBox. To enable this feature, assign true to the acceptCustomValue property.

Note that you should implement the onCustomItemCreating function to create a new data source entry. You can specify DOM events after which the component calls this function. Use the customItemCreateEvent property for this purpose. In addition to the event passed to this property, the item can also be created when users press the Enter key.

HTML
JavaScript
  • <div id="selectBoxContainer"></div>
  • const selectBoxData = new DevExpress.data.DataSource({
  • store: [
  • { id: 1, firstName: "Andrew" },
  • { id: 2, firstName: "Nancy" },
  • { id: 3, firstName: "Steven" }
  • ]
  • });
  •  
  • $(function() {
  • $("#selectBoxContainer").dxSelectBox({
  • dataSource: selectBoxData,
  • valueExpr: 'id',
  • displayExpr: 'firstName',
  • acceptCustomValue: true,
  • customItemCreateEvent: 'focusout',
  • onCustomItemCreating: function(e) {
  • // Generates a new 'id'
  • let nextId;
  • selectBoxData.store().totalCount().done(count => {nextId = count + 1});
  • // Creates a new entry
  • e.customItem = { id: nextId, firstName: e.text };
  • // Adds the entry to the data source
  • selectBoxData.store().insert(e.customItem);
  • // Reloads the data source
  • selectBoxData.reload();
  • }
  • });
  • });

View Demo

See Also