enable respondent to add extra response fields | XM Community
Skip to main content
Hi. I am trying to survey the pains customers experience with a certain product and my survey is set up to collect open text responses. As I can't anticipate the number of text entries that each respondent might want to provide, I'm using a form-type question with multiple open text fields. The drawback with this is that it makes the survey experience a bit off-putting since five open text fields can feel daunting. I'm wondering if there's a way to allow respondents to self-determine the number of text entries when they take the survey? Rather than predefining the number of responses that everyone might provide, imagine a button of some sort that the respondent could click to add extra response fields as necessary. Is there a solution for this?
I have something similar in one of my surveys but... IDK if it will apply here.



What I do in an early question is ask a respondent, "How many Contracts would you like to tell me about?" and they select a number from a drop down menu. Then the following questions are for Contract 1, Contract 2, etc.. and I simply display the additional information using the Question Display logic that if Q1 =1, then show Contract 1. If Q1=2, then show Contract 1 and 2.



This may or may not work for you. But I thought I'd share!
I have used this code that I found on the community awhile back for a similar problem. It adds a button to the form field that participants can press to make more fields.



Qualtrics.SurveyEngine.addOnReady(function()

{

var that=this.questionId;

jQuery("#"+this.questionId+" tr.ChoiceRow:not(:lt(3))").hide();

jQuery("<input type='button' id='add' value='Add Client' name='+' />").insertAfter("#"+this.questionId+" tr.ChoiceRow:last");

jQuery("#add").on('click',function(){

var c= jQuery("tr.ChoiceRow:visible").length;

jQuery("#"+that+" tr.ChoiceRow:eq("+c+")").show();

});



});
Thanks for the input @uhrxx005. Tested your code in the .addOnReady section, but I can't seem to get it to work. Nothing happens...
Hi @Kate. Your solution can maybe work as a workaround if I don't figure this out. Thanks for the input!
I just took a closer look. I believe you have to set it up as a text entry matrix question instead of a form field.
@uhrxx005. Ok this seems a bit better. The code produces a button, but the button does not do anything.



!
In the survey builder you will have to set the matrix row number to be the max number you want to allow, then in the code you determine how many are visible before the button. You can also change what the button says.
Ok @uhrxx005. Got it working now. The matrix table is not ideal for my usage situation, but it's the closest I've come to a solution so far. Thanks.
I'm sure the code could be modified to work with form fields but I don't really know Javascript. Good luck!
@uhrxx005 and @AndyScisco ..I find this code very useful, but when i try using it, nothing happens.... what am I doing wrong?
It's hard to know as there are several things that could be going wrong. One thing to consider is that even if you aren't displaying all of the rows in the beginning, you still need to actually create them in the survey builder. The javascript essentially hides rows and allows you to make them appear 1 by 1. It doesn't make new rows from scratch.

I thinks thread is old, but is there any way to do this on a side by side table? I need to have open text answers as well as pick lists?


@uhrxx005 wondering if I could tweak this to add another button right next to the 'add' button so respondents can remove extra fields as well?


rrauser sorry but I know very little about programming. I found this code elsewhere on the community.


Hi there - this was very helpful and worked like a charm in our survey. However, we have several of these types of questions, and when we copy the JavaScript into the new question, it seems to maintain the "counter" from the previous question, so won't allow a user to add more items if they reached the max on the earlier question. I'm not a JavaScript program, so I'm having trouble debugging where we might be able to reset the counter. I tried renaming some of the variables (e.g., "that", "c") but to no avail. Any help would be appreciated!
Hmm... making sure the new "add response fields" question is on it's own page seems to do the trick. We had multiple page breaks between the two questions, but it seems, maybe because we carried items over from the first one to a later question, that putting the new counter on its own page worked. I'm not entirely sure why this is true, so would appreciate any feedback regardless!


I've solved it for form field so it looks like this:
Unbenannt.PNGQualtrics.SurveyEngine.addOnload(function()
{
/*Place your JavaScript here to run when the page loads*/
jQuery("#"+this.questionId+" td:not(.ControlContainer)").hide();

});

Qualtrics.SurveyEngine.addOnReady(function()
{
/*Place your JavaScript here to run when the page is fully displayed*/
var that=this.questionId;
jQuery("#"+this.questionId+" tr:not(:lt(1))").hide();
jQuery("").insertAfter("#"+this.questionId+" tr:last");
jQuery("#add").on('click',function(){
        var c= jQuery("tr:visible").length;
        jQuery("#"+that+" tr:eq("+c+")").show(); 
    });


});


This was helpful. I used the code for form field byel_ . However, when I preview the individual question in the surveybuilder, the add button works well. But when I preview the entire survey, the add button does nothing.
???? please advise.


https://community.qualtrics.com/XMcommunity/discussion/comment/44326#Comment_44326Could you provide a screenshot of the question when it works and when it won't work?


single question preview.JPGwhole survey preview.JPGHello el_ So the "click button to add more" button works by adding more answer fields only when I preview the question from the survey editor as an individual question but when I preview my entire survey from the start it doesnt work when I get to that question, it does nothing. So I do not know if it will work in my published survey or not?


hm okay I do not have these issues. Did you change the code in any way? Maybe you could provide it to us. On that page, is this question alone or are there several questions on one page?


javascript gieee.JPGhere is the code.


I just added a page break between the questions, it works now but it adds more buttons after 5, it adds 8,9, and 10


javascript gieee.JPGI didn't change the code. I have now separated the questions with page breaks.


It works now but after the 5 visible answer fields, when you click button it adds no. 8, 9,10. it skips 6 and 7, I wonder why?


How many fields do you give? This can be seen here, number of fields:
image.png


Leave a Reply