====== cleaveCSM - Format numbers as they are typed in a constant sum matrix question ====== The cleaveCSM function uses cleave.js to automatically format numeric fields with thousand separators, decimals, currency symbols, etc. in a constant sum matrix. Since a constant sum matrix doesn't accept non-numeric inputs (i.e., formatted numbers) cleaveCSM converts the formatted numbers to numeric behind the scenes. This function is available for a reasonable fee. Contact **[[https://community.qualtrics.com/XMcommunity/messages/add/TomG|TomG]]** on the Qualtrics Community to learn more. ===== Set-up Instructions ===== ==== Survey Header ==== Add the cleaveCSM function to the survey header to make it available to any question in the survey. Go to Look & Feel -> General -> Header edit -> {{::icon_source.jpg?20|}} and paste the provided cleaveCSM function JS: Alternatively, paste the cleaveCSM 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 cleaveCSM function to apply it to the constant sum matrix question as follows: Qualtrics.SurveyEngine.addOnload(function() { cleaveCSM(this); }); To override default options, add an object containing the options to the function call. For example: Qualtrics.SurveyEngine.addOnload(function() { cleaveCSM(this,{cleaveparms:{prefix:"$"},placeholder:"$0"}); }); ===== Options ===== ==== align ==== **align** specifies the alignment of the number within the text entry box. Possible value are %%"left"%%, %%"right"%%, and %%"center"%%. Default: %%"right"%% ==== cleaveparms ==== **cleaveparms** is an object that specifies the cleave parameters. See [[https://github.com/nosir/cleave.js|cleave.js]] for more details. === cleaveparm: delimiter === The thousands separator as a string. Default %%","%% === cleaveparm: prefix === The number prefix as a string, such as a currency symbol. Default: %%""%% (none) === cleavparm: noImmediatePrefix === Boolean to not show prefix until a number is entered. Default: true === cleaveparm: numeralIntegerScale === The maximum number of digits allowed before the decimal. Default: 10 === cleaveparm: numeralDecimalScale === The maximum number of decimal places allowed. Default: 0 === cleaveparm: numeralDecimalMark === The decimal symbol as a string. Default: %%"."%% === cleaveparm: numeralPositiveOnly === Boolean to allow positive numbers only. Default: true === cleaveparm: stripLeadingZeros === Boolean to strip leading zeros from numbers. Default:true ==== fixedDecimal ==== Boolean to record number with a fixed number of decimal places. Number of decimal place matches numeralDecimalScale. Default: false ==== selector ==== CSS style selector for input boxes to format (e.g., specific columns). If empty, all constant sum input boxes are formatted. Default: %%""%% (empty) ==== width ==== The width of the input boxes. If empty, the question's default width is used. Default: %%""%% (empty) ==== zeroBlank ==== Boolean to show zeros (the default input value in constant sum matrices) as blank. Default: false ====== Qualtrics Wiki ====== [[start|Qualtrics Wiki]]