Add support for a multiselection dropdown box as a custom field in a ticket

Notice: This plugin is unmaintained and available for adoption.


This is a plugin allowing custom fields in tickets with multiple selection mode. Predefined values must be defined for each field, from which multiple values can be selected by the user.

The data is saved as a normal custom text field with the values separated by a single space. This way the normal Trac user interface will show the values in a sensible way too. Any spaces in the options are converted to '_' by default when saving the data.

For example this will add a new field supporting multiple selection called 'environment' with some predefined values:

environment = text
environment.format = list
environment.label = Environment
environment.multiselect = true
environment.options = Android|iPhone|iPad|Windows|Linux|MacOs
environment.order = 2

On screen this will be displayed as follows:

Note: Adding new selection choices is always fine. However, be careful when changing the existing options of a field when there is existing data with the old options. When you view a ticket the ui will only show currently valid options. Any old options will be cleared when the ticket is modified and the field in question has been changed.

The selection component itself uses to implement multiple selection in a more user friendly way.

See also: TracMultiSelectBoxPlugin

Bugs/Feature Requests

Existing bugs and feature requests are here.

If you have any issues, create a new ticket.


9 / 9


Download the zipped source from here.


Check out MultiSelectFieldPlugin using Subversion from here, or browse the source with Trac.


General instructions on installing Trac plugins can be found on the TracPlugins page.


The default configuration should be fine for most people, but if you need to change how the data is saved you can add these options under [multiselectfield] in conf/trac.ini:

Instead of the more advanced "chosen" selection box, use a standard html multiselection box. Default value: false.
The delimiter that is used when storing the data (as the selected options are appended to a single custom text field). Space is used by default as values separated by space will be recognized by the custom text field in list mode as separate values. Note: changing this option when there is already data saved with other options value may lead to unpredictable behavior. Default value: ' '.
Defined whether whitespace in the names of the predefined selectable values is removed before saving the data (whitespace will be converted to underscores). This should be enabled when using white space as data delimiter. Note: changing this option when there is already data saved with other options value may lead to unpredictable behavior. Default value: true.

Recent Changes

17830 by rjollos on 2020-08-05 17:04:53
TracMultiSelectField 1.0.4: Fix exceptions for unintended name attributes

Refs #13863.

17808 by rjollos on 2020-07-24 20:51:19
TracMultiSelectField 1.0.3dev: Make compatible with Trac 1.4+

Remove use of ITemplateStreamFilter and add equivalent
operations in JavaScript.

Refs #13855.

17518 by rjollos on 2019-09-24 23:09:27
TracMultiSelectField 1.0.2: Add project URL


Author: ollika (
Maintainer: none (needsadoption)

Last modified 6 years ago Last modified on Apr 21, 2018, 12:44:49 PM

Attachments (2)

Download all attachments as: .zip