Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

Array filter with exclusive option

More
15 years 1 week ago #48413 by wireframemedia
I will try that right now.

Do I keep the array filter on?

Thanks.
Dawna
The topic has been locked.
More
15 years 1 week ago #48414 by tpartner
Yup, turn on the filter for all questions.

Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
The topic has been locked.
More
15 years 1 week ago #48415 by wireframemedia
Ok I did it and I changed the code of 50 to 98 but it won't show up. Drat!

I tried it both ways with your 50 and with my 98 which is the correct code.

Any ideas?

The browser says "done but with errors..."

Thanks.

Dawna
The topic has been locked.
More
15 years 1 week ago #48416 by tpartner
The 50 is just a 50 millisecond delay before firing the script so the filtering can happen first, it should be left alone.

What browser are you using? I tested with IE7 and Firefox.

Can you check the log to see what the errors are.

Failing that, can you activate the survey so I can check? (send me a PM with the URL if it's sensitive)

Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
The topic has been locked.
More
15 years 1 week ago #48418 by wireframemedia
Ok I've put it back and still no go.

I'm using IE8 and I also tried Firefox. When I view the source it is in there....

I'll send you a PM with the link. It is a high-level sensitive survey for one of the big Social Networking companies.

Thanks so much for all your help with this.

Dawna
The topic has been locked.
More
15 years 1 week ago #48419 by tpartner
Although I don't get any JS errors I see the problem - it's the Limespired template messing things up.

Use this. I would also move it to the question help so it doesn't show in the alert that pops up if the question is unanswered. Note that this will only display the last option - gimme a minute to modify it to display the last two.
Code:
<script type="text/javascript" charset="utf-8">
 
    $(document).ready(function(){
 
        window.setTimeout(function() {
            $('.survey-question-answer li:last').show();
            $('.survey-question-answer input[type=hidden]:eq(0)').attr('value', 'on');
        }, 50);
 
    });
 
</script>

Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
The topic has been locked.
More
15 years 1 week ago #48420 by wireframemedia
Ok great! Thank you.
I'll try this and then check back in a few for the other.
Thanks so much!!!

Dawna
The topic has been locked.
More
15 years 1 week ago #48421 by tpartner
And this should show the last two options:
Code:
<script type="text/javascript" charset="utf-8">
 
    $(document).ready(function(){
        var itemCount = $('survey-question-answer li').length;
        itemIndex = Number(itemCount-2);
        window.setTimeout(function() {
            $('survey-question-answer li:eq('+itemIndex+')').show();
            $('survey-question-answer li:eq('+itemIndex+') input[type=hidden]:eq(0)').attr('value', 'on');
            $('survey-question-answer li:last').show();
            $('survey-question-answer li:last input[type=hidden]:eq(0)').attr('value', 'on');
        }, 50);
 
    });
 
</script>

Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
The topic has been locked.
More
15 years 1 week ago #48422 by wireframemedia
Ok we're getting very close here.

The first script you provided worked somewhat...it showed me the Other (please specify) option but not the none of the above option. The second script didn't show either of them so the first one was very close....

Getting there...
Dawna
The topic has been locked.
More
15 years 1 week ago #48423 by tpartner
Dawna, I've sent you a PM (and no it's not rude :) )

Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
The topic has been locked.
More
15 years 1 week ago #48424 by wireframemedia
Thanks Tony.
How do I get it?

Sorry, I am so new to this forum, not sure where to retrieve...
Dawna
The topic has been locked.
More
15 years 1 week ago #48425 by tpartner
Go to the homepage and you should see a link in the right column.

Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
The topic has been locked.
More
15 years 1 week ago - 15 years 1 week ago #48429 by tpartner
Okay, so if anyone still cares, Dawna and I finally sorted it out. The main hurdles were that she was randomizing the answers of the filtered questions, using the "Other" option for every question and that she wanted the last 2 options to be "sticky".

So the final code is as follows (where the "Other" options are inserted with the LimeSurvey interface and the question code for "None of the above" is 98).

Phew!!!
Code:
<script type="text/javascript" charset="utf-8">
 
    $(document).ready(function(){
 
        // Find the survey, group and question IDs
        if($( 'input#fieldnames' ).length != 0) {
            var fieldNames = $('input#fieldnames').attr('value');
            var tmp = fieldNames.split('X');
            var sID = tmp[0];
            var gID = tmp[1];
            var qIDStr = $('div.multiple-opt:eq(0)').attr('id');
            var tmp2 = qIDStr.split('question');
            var qID = tmp2[1];
        }        
 
        // Place the "None of the above" option second last after randomization
        $('li#javatbd'+sID+'X'+gID+'X'+qID+'98').insertBefore($('.survey-question-answer li:last'));
 
        // Set an index for the second last option
        var itemCount = $('.survey-question-answer li').length;
        itemIndex = Number(itemCount-2);
 
        // Show the last two options
        window.setTimeout(function() {
            $('.survey-question-answer li:eq('+itemIndex+')').show();
            $('.survey-question-answer li:eq('+itemIndex+') input[type=hidden]:eq(0)').attr('value', 'on');
            $('.survey-question-answer li:last').show();
            $('.survey-question-answer li:last input[type=hidden]:eq(0)').attr('value', 'on');
        }, 50);
 
    });
 
</script>

Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Last edit: 15 years 1 week ago by tpartner.
The topic has been locked.
More
14 years 5 months ago - 14 years 5 months ago #58665 by arielmosto
Thank you very much. I'm using this script without problems in Firefox and Chrome but crashes in Internet Explorer. I, housed several hours but not how to make it work in IE.

I am using the first script you post:

<script type="text/javascript" charset="utf-8">

$(document).ready(function(){

window.setTimeout(function(){
$('td.answer li:last').show();
$('td.answer li:last input[type=hidden]:eq(0)').attr('value', 'on');
}, 50);

});</script>



Thanks in advance for your help. Ariel
Last edit: 14 years 5 months ago by arielmosto.
The topic has been locked.
More
14 years 5 months ago #58667 by tpartner
Are you getting any JavaScript errors?

Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
The topic has been locked.
Moderators: tpartnerholch

Lime-years ahead

Online-surveys for every purse and purpose