Welcome, Guest
Username: Password: Remember me
  • Page:
  • 1
  • 2

TOPIC: Notifying a user if he didn't answer a a non-mandatory question

Notifying a user if he didn't answer a a non-mandatory question 2 years 8 months ago #76801

Hi,
Is there a way to notify someone that he didn't answer a non-mandatory question?
I want to do this because some participants might skip a question unintentionally, and not necessarily because it was non-mandatory.

Thanks!
David
The administrator has disabled public write access.

Re: Notifying a user if he didn't answer a a non-mandatory question 2 years 8 months ago #76802

  • tpartner
  • tpartner's Avatar
  • OFFLINE
  • LimeSurvey Team
  • Posts: 4410
  • Thank you received: 842
  • Karma: 385
You can use JavaScript to do this.

What question type is it?
Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.

LimeSurvey is open-source and run entirely by volunteers so please consider donating to support the project.
The administrator has disabled public write access.

Re: Notifying a user if he didn't answer a a non-mandatory question 2 years 8 months ago #76804

Array with 5 sub-questions.
The administrator has disabled public write access.

Re: Notifying a user if he didn't answer a a non-mandatory question 2 years 8 months ago #76805

  • tpartner
  • tpartner's Avatar
  • OFFLINE
  • LimeSurvey Team
  • Posts: 4410
  • Thank you received: 842
  • Karma: 385
So, you want to warn if they skip any row in the array or just if they skip the whole array?
Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.

LimeSurvey is open-source and run entirely by volunteers so please consider donating to support the project.
The administrator has disabled public write access.

Re: Notifying a user if he didn't answer a a non-mandatory question 2 years 8 months ago #76806

I was thinking about warning them if they skipped any row in the array, but it would be great to have the code for skipping a whole question as well for future use (if they unintentionally skip a yes/no question, for example).

Thanks!

EDIT: i'd like the message to say something like: "You did not answer question {QUESTION-NUMBER}. Are you sure you don't want to answer that question?"

Or for a specific subquestion in an array: "You did not answer subquestion {SUBQUESTION_NUMBER} in question {QUESTION-NUMBER}. Are you sure you don't want to answer that subquestion?"
Last Edit: 2 years 8 months ago by davidspivak. Reason: more info
The administrator has disabled public write access.

Re: Notifying a user if he didn't answer a a non-mandatory question 2 years 8 months ago #76807

  • tpartner
  • tpartner's Avatar
  • OFFLINE
  • LimeSurvey Team
  • Posts: 4410
  • Thank you received: 842
  • Karma: 385
1) Set up your survey to use JavaScript.

2) Add the following script to the source of the array. Replace "QQ" with the array question ID.

The script interrupts the Next/Submit process and if an unanswered row is found in the array, the respondent is asked if they would like to continue. This script is for array questions but could be modified for radio questions.
<script type="text/javascript" charset="utf-8">
 
	$(document).ready(function() {
 
		checkArray(QQ, 'You did not answer the question. Do you really want to continue?')
 
		function checkArray(qID, msg) {
 
			// Interrupt next/submit function 
			$('#movenextbtn, #movesubmitbtn').click(function(){
 
				var failTest = '';
 
				$('#question'+qID+' tbody[id^="javatbd"]').each(function(i) {
					if($('input.radio:checked', this).length < 1) {
						failTest = 1;
						$('th, td', this).css({'background':'pink'});
					}
					else {
						$('th, td', this).css({'background':''});
					}
				});
				if(failTest == 1) {
					if(confirm(msg)) {
						return true;
					}
					else {
						return false;
					}
				}
			});
		}
 
	});
 
</script>
Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.

LimeSurvey is open-source and run entirely by volunteers so please consider donating to support the project.
The administrator has disabled public write access.

Re: Notifying a user if he didn't answer a a non-mandatory question 2 years 8 months ago #76812

Thanks so much, worked like a charm!

I noticed it highlights the unanswered question in pink, but is it also possible to make the pop-up message say which question was left unanswered?
The administrator has disabled public write access.

Re: Notifying a user if he didn't answer a a non-mandatory question 2 years 8 months ago #76815

  • tpartner
  • tpartner's Avatar
  • OFFLINE
  • LimeSurvey Team
  • Posts: 4410
  • Thank you received: 842
  • Karma: 385
...but is it also possible to make the pop-up message say which question was left unanswered?
Yes, you can just modify the message in the function call:
checkArray(QQ, 'You did not answer question 4. Do you really want to continue?');

Oops, just noticed a possible bug in 1.92...use this instead:
<script type="text/javascript" charset="utf-8">
 
	$(document).ready(function() {
 
		checkArray(QQ, 'You did not answer the question. Do you really want to continue?');
 
		function checkArray(qID, msg) {
 
			// Interrupt next/submit function 
			$('#movenextbtn, #movesubmitbtn').click(function(){
 
				var failTest = '';
 
				$('#question'+qID+' tbody[id^="javatbd"]').each(function(i) {
					if($('input.radio:checked', this).length < 1) {
						failTest = 1;
						$('th, td', this).css({ 'background':'pink' });
					}
					else {
						$('th, td', this).css({ 'background':'' });
					}
				});
				if(failTest == 1) {
					if(confirm(msg)) {
						return true;
					}
					else {
						return false;
					}
				}
			});
		}
 
	});
 
</script>
Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.

LimeSurvey is open-source and run entirely by volunteers so please consider donating to support the project.
The administrator has disabled public write access.

Re: Notifying a user if he didn't answer a a non-mandatory question 2 years 8 months ago #76816

I see, Thanks!

Is it possible to insert such a piece of code into the template instead of putting it in each question, so that the survey automatically checks for unanswered questions in each page and then notifies the participant about it?
The administrator has disabled public write access.

Re: Notifying a user if he didn't answer a a non-mandatory question 2 years 8 months ago #76844

  • DenisChenu
  • DenisChenu's Avatar
  • OFFLINE
  • Moderator Lime
  • Posts: 6658
  • Thank you received: 887
  • Karma: 263
Hello,

For pseudo non-mandatory question, i use a lot:
- Add a 'I don't want to answer' answer
- Set to mandatory

:)
The administrator has disabled public write access.
  • Page:
  • 1
  • 2
Moderators: ITEd
Time to create page: 0.126 seconds
Donation Image