I just used the macro file to import a translated survey using several (8) languages.
As I'm testing it I see that none of the JavaScript is working.
Here is an example (not my choice in question names, also, I'm concatenating the <div> portion):
Question TC1B
<div class="language" data-language="1">
<b>How often do you <u>currently</u> ride Sound Transit?</b>
</div>
<div class="language" data-language="2">
<b>您<u>目前</u>多常搭乘海灣公共運輸署交通工具?</b>
</div>
On the same page (furter down as a seperate question) I have the following branching.
<script>
var GLOBAL_SAWTOOTH_[% QUESTIONNAME() %]_SETTINGS = {
branchings: [
// Display how long been a ST rider if they currently ride ST
{
dependentQuestion: 'TC5',
condition: function() {
return (SSI_GetValue('TC1B') == 1 ||
SSI_GetValue('TC1B') == 2 ||
SSI_GetValue('TC1B') == 3 ||
SSI_GetValue('TC1B') == 4 ||
SSI_GetValue('TC1B') == 5 ||
SSI_GetValue('TC1B') == 6) ;
},
selectMinimum: 1
},
// Display what system(s) currently ride if they currently ride ST
{
dependentQuestion: 'TC1EA1',
condition: function() {
return (SSI_GetValue('TC1B') == 1 ||
SSI_GetValue('TC1B') == 2 ||
SSI_GetValue('TC1B') == 3 ||
SSI_GetValue('TC1B') == 4 ||
SSI_GetValue('TC1B') == 5 ||
SSI_GetValue('TC1B') == 6) ;
},
selectMinimum: 1
}
],
errorMessageSettings: {
missingAnswer: 'A response is required.',
minimumChecks: 'The minimum number of checks is [MINIMUM].',
minimumCharacters: 'A response is required.'
}
};
</script>
The questions TC5 and TC1EA1 are not appearing...yet I still get error messages stating they need to be filled out (yes, the code was more efficient, but I tried rewriting it thinking making it a bunch of 'or' statements would work better).
Further in the survey we use some javascript to create an expanding grid. This worked prior to incorporating the multiple languages, but now no longer works.
<script>
$(document).ready(updateShownGrades);
$(document).on('lighthouseRadioButtonChanged', updateShownGrades);
function updateShownGrades() {
$('.grid').each(function(){
// var questionName = this.id.replace(/_div$/, ''); // Original line that works, but it applies the script to every grid on the page
var questionName = 'CSM1'; //modifying the original code so it only applies to CSM1
var updateShownGrade = function(levels, show) {
levels.forEach(function(level){
$('#' + questionName + '_div .inner_table > tbody > tr > td:nth-child(' + (level + 1) + ')').toggle(show);
$('#' + questionName + '_div .mobile_select:nth-child(' + level + ')').toggle(show);
});
}
var resp = SSI_GetValue(questionName + '_r1');
updateShownGrade([3, 4], resp >= 2 && resp <= 4);
updateShownGrade([6, 7], resp >= 5 && resp <= 7);
updateShownGrade([9, 10], resp >= 8 && resp <= 10);
updateShownGrade([12, 13], resp >= 11 && resp <= 13);
});
}
</script>
I'm hoping there is something simple that I'm missing, but I'm at a loss. Help me Sawtooth suppport, your my only hope.