- Posts: 40
- Thank you received: 1
Welcome to the LimeSurvey Community Forum
Ask the community, share ideas, and connect with other LimeSurvey users!
Setting default values for dropdowns in javascript
- ralfkunze
- Topic Author
- Offline
- Senior Member
Less
More
2 years 6 months ago #220829
by ralfkunze
Setting default values for dropdowns in javascript was created by ralfkunze
Hello,
I took a javascript from Toni Partner from this thread [url] forums.limesurvey.org/forum/can-i-do-thi...uestion-type?start=0 [/url] and adapted it to my needs (thanks a lot, Toni, for this sript!).
Now I would like to set a default value for the dropdown fields: "Zunahme" should be preselected. Unfortunately I could not find any thread in the forum with a solution to this...
Thanks in advance,
Ralf
I took a javascript from Toni Partner from this thread [url] forums.limesurvey.org/forum/can-i-do-thi...uestion-type?start=0 [/url] and adapted it to my needs (thanks a lot, Toni, for this sript!).
Code:
<script type="text/javascript" charset="utf-8"> $(document).on('ready pjax:scriptcomplete',function(){ var thisQuestion = $('#question{QID}'); // Column-specific classes $('tr.subquestion-list', thisQuestion).each(function(i) { $('th, td', this).each(function(i) { $(this).addClass('column-'+i); }); }); // Insert selects into column 1 if($('.answer-item.column-1 .inserted-select', thisQuestion).length == 0) { $('.answer-item.column-1', thisQuestion).addClass('with-select').append('<select class="inserted-select form-control list-question-select">\ <option value="">Bitte auswählen...</option>\ <option value="1">Zunahme um</option>\ <option value="2" selected>Abnahme um</option>\ </select>'); } // Listeners on select elements $('.inserted-select', thisQuestion).on('change', function(i) { if($(this).val() != '') { $(this).closest('.answer-item').find('input:text').val($.trim($('option:selected', this).text())).trigger('change'); } else { $(this).closest('.answer-item').find('input:text').val('').trigger('change'); } }); // Returning to page $('.with-select input:text', thisQuestion).each(function(i) { var thisCell = $(this).closest('.answer-item'); var inputText = $.trim($(this).val()); var selectval = $('select.inserted-select option', thisCell).filter(function () { return $(this).html() == inputText; }).val(); $('select.inserted-select', thisCell).val(selectval); }); // Listener on column 2 inputs $('.answer-item.column-2 input:text', thisQuestion).on('keyup change', function(e) { var thisValue = $.trim($(this).val()); // Numerics only if($.isNumeric(thisValue) === false) { // Strip out non-numerics characters newValue = thisValue.replace(/\D/g,''); $(this).val(newValue).trigger('change'); } // Max/min values var maxAllowed = 100; var minAllowed = 0; if (thisValue > maxAllowed) { alert('The maximum allowed is '+maxAllowed+'.'); $(this).val(maxAllowed); } else if (thisValue < minAllowed) { alert('The minimum allowed is '+minAllowed+'.'); $(this).val(minAllowed); } }); // Clean-up styles $('select.inserted-select', thisQuestion).css({ 'max-width': '100%' }); $('.with-select input:text', thisQuestion).css({ 'position': 'absolute', 'left': '-9999em' }); }); </script> <style type="text/css">.custom-array table.subquestion-list col { width: auto !important; } .custom-array table.subquestion-list thead .column-0 { width: 20%; } .custom-array table.subquestion-list thead .column-1 { width: 20%; } </style>
Now I would like to set a default value for the dropdown fields: "Zunahme" should be preselected. Unfortunately I could not find any thread in the forum with a solution to this...
Thanks in advance,
Ralf
The topic has been locked.
- Joffm
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 12916
- Thank you received: 3975
2 years 6 months ago - 2 years 6 months ago #220834
by Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Replied by Joffm on topic Setting default values for dropdowns in javascript
Hi,
the way without any javascript is to use an equation like
{Q1a_Y001_X002=if(is_empty(Q1a_Y001_X002),2,Q1a_Y001_X002)}
{Q1a_Y002_X002=if(is_empty(Q1a_Y002_X002),2,Q1a_Y002_X002)}
...
BTW: Good point. I will add it to my tutorial about arrays.
Joffm
the way without any javascript is to use an equation like
{Q1a_Y001_X002=if(is_empty(Q1a_Y001_X002),2,Q1a_Y001_X002)}
{Q1a_Y002_X002=if(is_empty(Q1a_Y002_X002),2,Q1a_Y002_X002)}
...
BTW: Good point. I will add it to my tutorial about arrays.
Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 2 years 6 months ago by Joffm.
The following user(s) said Thank You: tpartner, ralfkunze
The topic has been locked.
- tpartner
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 10108
- Thank you received: 3593
2 years 6 months ago #220836
by tpartner
Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Replied by tpartner on topic Setting default values for dropdowns in javascript
Yes, this is the best solution.
Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
The topic has been locked.
- ralfkunze
- Topic Author
- Offline
- Senior Member
Less
More
- Posts: 40
- Thank you received: 1
2 years 6 months ago #220856
by ralfkunze
Replied by ralfkunze on topic Setting default values for dropdowns in javascript
Hi Joffm,
thanks for the quick reply! Now I am not sure, where I am supposed to insert that equation. As I read in this thread , the equation goes into Logic - Question validation equation. If I put it there, it won't work. Can you help me any further?
Is your tutorial about arrays accessible for everybody?
Thanks a lot,
Ralf
thanks for the quick reply! Now I am not sure, where I am supposed to insert that equation. As I read in this thread , the equation goes into Logic - Question validation equation. If I put it there, it won't work. Can you help me any further?
Is your tutorial about arrays accessible for everybody?
Thanks a lot,
Ralf
The topic has been locked.
- tpartner
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 10108
- Thank you received: 3593
2 years 6 months ago #220862
by tpartner
Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Replied by tpartner on topic Setting default values for dropdowns in javascript
Place it in an equation type question, in the same group, directly preceding the array question.
- manual.limesurvey.org/Question_type_-_Equation
- manual.limesurvey.org/Question_type_-_Equation
Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
The following user(s) said Thank You: ralfkunze
The topic has been locked.
- Joffm
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 12916
- Thank you received: 3975
2 years 6 months ago #220871
by Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Replied by Joffm on topic Setting default values for dropdowns in javascript
Hi, "ralfkunze"
Have a look in the German part of the forum.
Joffm
referring to your username I think you speak German.Is your tutorial about arrays accessible for everybody?
Have a look in the German part of the forum.
Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
The following user(s) said Thank You: ralfkunze
The topic has been locked.
- ralfkunze
- Topic Author
- Offline
- Senior Member
Less
More
- Posts: 40
- Thank you received: 1
2 years 6 months ago #220921
by ralfkunze
Replied by ralfkunze on topic Setting default values for dropdowns in javascript
Hi,
I tried everything but I cannot get it to work. I checked the manual about equation questions, I downloaded tutorial for arrays from Joffm (thanks a lot for this excellent work!) and set up a whole new question... but it did not work out.
So I saved my questions in a file an attach it to this message. Can you please look over it?
Ralf
I tried everything but I cannot get it to work. I checked the manual about equation questions, I downloaded tutorial for arrays from Joffm (thanks a lot for this excellent work!) and set up a whole new question... but it did not work out.
So I saved my questions in a file an attach it to this message. Can you please look over it?
Ralf
Attachments:
The topic has been locked.
- Joffm
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 12916
- Thank you received: 3975
2 years 6 months ago #220930
by Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Replied by Joffm on topic Setting default values for dropdowns in javascript
Hi,
well, use the script of the tutorial and everything is fine.
I did this and removed the part of different column widths, You obviously did not use it.
Joffm
BTW: Your question is only an example, not a serious question, isn't it.
In welchem Maße verzeichneten Sie im Jahr 2021 Rückgänge
combined with the preset of "decrease by"
If you ask the question this way, you do not need the array, a "multiple numeric question" is sufficient.
A better question text to matvh this type and the answer options:
In welchem Maße verzeichneten Sie im Jahr 2021 Rückgänge oder Zuwächse
.
well, use the script of the tutorial and everything is fine.
I did this and removed the part of different column widths, You obviously did not use it.
Joffm
BTW: Your question is only an example, not a serious question, isn't it.
In welchem Maße verzeichneten Sie im Jahr 2021 Rückgänge
combined with the preset of "decrease by"
If you ask the question this way, you do not need the array, a "multiple numeric question" is sufficient.
A better question text to matvh this type and the answer options:
In welchem Maße verzeichneten Sie im Jahr 2021 Rückgänge oder Zuwächse
.
Volunteers are not paid.
Not because they are worthless, but because they are priceless
The following user(s) said Thank You: ralfkunze
The topic has been locked.
- ralfkunze
- Topic Author
- Offline
- Senior Member
Less
More
- Posts: 40
- Thank you received: 1
2 years 6 months ago #221016
by ralfkunze
Replied by ralfkunze on topic Setting default values for dropdowns in javascript
Sorry, but my answer yesterday somehow wasn't posted... thank you for the corrections of the script and the wording! Yes - it was the first raw version.
Whats the advantage of using arrays over multiple numeric question? From my point of view right now they are both quite elaborate.
Ralf
Whats the advantage of using arrays over multiple numeric question? From my point of view right now they are both quite elaborate.
Ralf
The topic has been locked.