Parse text entry line breaks as separate items? | XM Community
Skip to main content
I want respondents to enter a list of items of any length and have each of these items captured as its own value. Probably list lengths are 0-10 items.



I know I could do this with a form question (one item per form field), or with a single essay style field after exporting data (run a script that identifies each line break as a separate item). But is there a way to accomplish something like that second option within Qualtrics? I was looking for a way to have Qualtrics recognize each line break in a text box as a distinct item but that doesn't seem to be possible.



Example below. Any suggestions?







_Respondent enters this_

cat

dog

echidna



_My data would be structured like this_

Response 1: cat

Response 2: dog

Response 3: echidna

Response 4:

Response 5:
Hi @NickVEIC,

you're able to distinguish lines using JavaScript. You can divide your text into array using line breaks and than send your particular responses to distinct embedded filed (which must be defined in the survey flow manually).

You could use something like following script. Be aware that if your respondent enters 11 or more lines, the remaining ones won't be stored. You could either constrain your `textarea` element or save it somewhere else by modifying the script.



Qualtrics.SurveyEngine.addOnPageSubmit(function()

{

var my_text = document.getElementById(this.questionId).getElementsByTagName('textarea')[0].value.split('\\n');



var i = 0;

var j;



for (; i < my_text.length; i++) {

j = i + 1;

Qualtrics.SurveyEngine.setEmbeddedData( 'my_field' + j, my_text[i]);

}

});
Hi @fleb,



Thanks for the idea! Sounds like a very useful approach. Unfortunately I have absolutely zero skills with JavaScript. Using your code as it's written, should the manually defined embedded data fields be called "my_field0," "my_field1," etc.?



If I'm off base with that, I may have to just hang on to this idea for a time at which I'm familiar enough with JavaScript to make use of it!
Hi @NickVEIC,

you're right with the field names. Regarding to the 11th and higher lines, I've just realized, that the text of the whole field will be stored as a response anyway, so you don't need to implement something else in fact. Just create your fields and copy-paste the code.

Good luck!

Leave a Reply