====== formSelects - Convert form fields to dropdowns without custom JavaScript ====== The **formSelects** function converts one or more text form fields into selects (aka dropdowns) or searchable selects. The select options (aka choices) are defined using html in the choice text and question text, so no custom JavaScript is required...just call the **formSelects** function and that's it! Features include: * All configuration done using html - no custom JavaScript needed! * Optional searchable selects using [[https://select2.org/getting-started/basic-usage|select2]] * Optional dynamic option creation using select2 * Supports multi-selects * Supports back button - even when dynamic options are created * Supports default choices * Translation friendly * Supports "New Survey Experience" (aka Simple layout)! Here is a quick video demonstration:\\ {{ ::formSelects.mp4?770 |formSelects Demonstration}} This function is available for a reasonable fee. Contact **[[https://community.qualtrics.com/inbox/conversation?with=373|TomG]]** on the Qualtrics Community to learn more. ===== Set-up Instructions ===== ==== Survey Header ==== === Add select2 (if applicable) === If you wish to use searchable selects add the select2 stylesheet and library to the survey header. Go to Look & Feel -> General -> Header edit -> {{::icon_source.jpg?20|}} and paste: === Add jQuery (only if using New Survey Experience) === Alternatively, paste the formSelects function JS into a question's JS outside the existing Qualtrics functions to make it available to questions on the page. ==== Question JavaScript ==== Add JS to call the formSelects function to apply it to a form question as follows: Qualtrics.SurveyEngine.addOnload(function() { formSelects(this); }); ==== QuestionText Select HTML ==== In ''HTML View'' mode, add the html for the select(s). Each select should be assigned a unique class name that will be referenced in the corresponding **[[formselects#choice_label_html|Choice Label HTML]]**. To make a select a multi-select add the attribute ''multiple=%%"multiple"%%'' to the '''' tag as needed. ''value'' attributes are NOT required in the select’s option tags. If value attributes are used, the value will be saved in Qualtrics instead of the option text. If dynamic option creation (i.e., select2 tags) is being used, the value attribute **should not** be used. Example select HTML: ==== Choice Label HTML ==== === data-select === To convert a field to a select put the choice label inside a '''' tag with the attribute ''data-select=//%%"classname"%%//'' where classname matches the class of a select tag in the **[[formselects#questiontext_select_html|QuestionText Select HTML]]**. For example: State === data-select2 === To make the select a searchable select (i.e., select2) using the default options, add the attribute ''data-select2''. For example: State To add select2 options, add the options to the ''data-select2'' attribute as an object. For example: State === data-join === When a multi-select dropdown is used, the choices must be joined together into a single string to save them in the text form field. By default the choices are joined with ", " (comma+space). To join using a different string, add a ''data-join'' attribute with the value of the join string. For example: State ====== Qualtrics Wiki ====== [[start|Qualtrics Wiki]]