Welcome to the LimeSurvey Community Forum

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

hide question with javascript - javascript if doesn't works

More
10 years 4 months ago - 10 years 4 months ago #101361 by DWS
Hi,

I'm triyng to hide some subquestions on array depending on subquestions answered on same array.

I put this code on question help:
Code:
<script type="text/javascript" charset="utf-8">
 
$('tr[id="javatbd779749X51X1568A3"]').attr('hidden', 'hidden');
 
 
</script><br />
<script type="text/javascript" charset="utf-8">
var rp1="{INSERTANS:779749X51X1568A1}";
 
document.write ("A1 = " + rp1) ;
 
</script><br />
<script type="text/javascript" charset="utf-8">
var rp1="{INSERTANS:779749X51X1568A1}";
if (rp1 !="") $('tr[id="javatbd779749X51X1568A4"]').attr('hidden', 'hidden') ;
if (rp1 =="Sí") $('tr[id="javatbd779749X51X1568A5"]').attr('hidden', 'hidden') ;
if (rp1 =="") $('tr[id="javatbd779749X51X1568A6"]').attr('hidden', 'hidden') ;
 
document.write ("A1= " + rp1) ;
</script>

Any help?

You can try the survey here:

arnsurveys.no-ip.org/lstests/index.php/s...49/newtest/Y/lang/es
Last edit: 10 years 4 months ago by DenisChenu.
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
10 years 4 months ago #101382 by DenisChenu
Hi,

Some probelm in your conde:
There are 1 logic problem: at start the array is empty, then you need to update when user answers.
Look at jquery api : api.jquery.com : and use it a lot.
Use expression manager and not INSERTANS
document.write is a bad idea, because you can do it only when javascript is done : then you need to add some extra div.

Surely some error, but you can try something like this: (adding <span id="whatisA1"></span>)
Code:
$(document).ready(function(){
  $("#question{QID} #javatbd{SGQ}A1 input").click(function(){
    var rp1=$("#answer{SGQ}A1").val();
    $("#whatisA1").text(rp1);
    if (rp1 !="") {$('#javatbd{SGQ}A4+').hide();}
    else{$('#javatbd{SGQ}A4').show();}
  });
});
etc ....

And use a real javascript console (firebug is a great tools for firefox (and some other)).

Denis

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
The topic has been locked.
More
10 years 4 months ago #101555 by DWS
Hi, sorry but I have been busy last days.

Thanks for your code, but I have the same problem, don't hide the question even if the question is checked. It seems that don't recognize the value entered on the If condition.

The document.write tags are only for bug, to see what are the checked values. Anyway, I don't undestand why and where have to use the <span id="whatisA1"></span> labels.

And I use the default firefox webmaster tools to check the code. It works ok, there are no errors.

Thanks.
Regards.
The topic has been locked.
More
10 years 4 months ago #101574 by DWS
Same on this survey:

arnsurveys.no-ip.org/demos1/index.php?si...95&newtest=Y&lang=es

I managed to change max value on the slider for each subquestion:

<script type="text/javascript" charset="utf-8">
$('#slider-param-max-84895X20X217d1').attr( "value","45" );
$('#slider-param-max-84895X20X217d2').attr( "value","90" );
$('#slider-param-max-84895X20X217d5').attr( "value","10" );
$('#slider-param-stepping-84895X20X217d5').attr( "value","1" );
</script>

But I want to change the values if first question is checked:

<script type="text/javascript">
var rp3="{INSERTANS:84895X20X245}";
if (rp3=="Sí") $('#slider-param-max-84895X20X217d1').attr( "value","85" );
</script>

Again this code doesn't works.

Can you help me?

Thanks.
Regards.
The topic has been locked.
  • tpartner
  • tpartner's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
10 years 4 months ago #101577 by tpartner
You should put all of your jQuery inside a $(document).ready(function(){} function.

If the questions are on the same page you will need to put a listener on the first question - search the forums for "listener".

Cheers,
Tony Partner

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

Lime-years ahead

Online-surveys for every purse and purpose