How to setChoiceValue of one question from another question | XM Community
Skip to main content
I'd like to reset the user input of radio buttons from outside the question. Based on the examples I found (https://www.qualtrics.com/community/discussion/1387/deselecting-a-radio-button) I though it would work if I just reference the other question with its QID in Qualtrics.SurveyEngine.registry[qid].setChoiceValue(5, 1, false). However it never works. So I do I properly reference another question?



The reset function looks like this.



```javascript

function Reset() {

$(questionid="QID2").hide();

for (var i = 1; i < 4; i++) {

$(questionid="QID2").setChoiceValue(i, false);

}

}

```



QID2 is the question I want to modify. The $(questionid="QID2").hide(); by it self works total fine. Only the .setChoiceValue doesn't work 😞
`$(questionid="QID2")` finds the div with the id of QID2. That is not the same thing as the question object (i.e., the "this" in this.setChoiceValue) .
Thanks for the fast reply, Tom. How would I properly reference the question object to execute setChoiceValue? I guess I need to use something like:

questionId = ????

Qualtrics.SurveyEngine.registry[questionId].setChoiceValue(i, false);



So far all approaches to assign the questionId of the other question haven't worked. Can you help?
As far as I can tell, the question object (i.e. registry) isn't accessible from another question. Therefore, you can't apply setChoiceValue to a different question. You can do it directly through the DOM:

```

jQuery("#QID2 input").prop("checked", false);

```
Unfortunately this solution is not working either. I tried all combinations but no success. I kept getting all kinds of errors.
> @DRSK said:

> Unfortunately this solution is not working either. I tried all combinations but no success. I kept getting all kinds of errors.



Please post your code.
The code looks like this. What I try to do, is show and hide question QID2 and QID32 based on the selection of choices of the questions with the Javascript. In addition, I want to make sure that all selections are reset when hiding it. It won't work with display logic as I have quotas on the choices. I thought this is an easy thing but I already sitting since to days on it.



```javascript

Qualtrics.SurveyEngine.addOnload(function()

{

Reset();

this.questionclick = function(event,element){

Reset();

if (event.target.value == 1) {

$(questionid="QID2").show();

}

if (event.target.value == 2) {

$(questionid="QID32").show();

}

}

});



function Reset() {

$("QID2 input").each(function(i){

this.prop("checked", false);

});

$(questionid="QID2").hide();

$(questionid="QID32").hide();

}

```
Replace $ with jQuery. $ in Qualtrics refers to prototypejs.
Thanks for the info. I now get the code running without errors. But it still doesn't deselect the radio buttons. I also attach the project as I'm totally out of ideas to fix this.

Leave a Reply