I guess if you are always wanting to show or hide the next 5 rows of the form then it would be possible to build a less repetitive function that does this and probably possible to make it accept a parameter rather than 5 which might mean it is a bit more flexible. In general the change event in the example from the book should work fine to show and hide the relevant rows on selection/deselection. However possibly a library that does this is better however i've never tried them.
Regards Donald On Wednesday, December 23, 2015 at 9:22:51 PM UTC, Anthony wrote: > > A better way would probably be to use an existing form wizard library > designed for this purpose. For example: > http://www.jquery-steps.com/Examples#advanced-form. > > Anthony > > On Wednesday, December 23, 2015 at 3:54:01 PM UTC-5, [email protected] > <javascript:> wrote: >> >> I have a form that is rather long, therefore I want to split it into >> sections. >> I am doing this with jQuery conditional fields in forms. >> >> The first 5 fields appear, once the user enters input for the fields and >> then they click on a checkbox, the filled fields are then hidden and the >> next 5 questions are unhidden, and this is repeated every 5 questions. >> >> I was wondering if there is a way to show the fields again that were >> hidden after clicking the checkbox, in case the user unchecks the box in an >> attempt to view the previous 5 questions again. Because what happens now >> when the box is unchecked is that it hides the fields that it revealed but >> doesn't show the previous 5 fields unless you uncheck and recheck the box. >> >> >> Also, I am basically repeating the following code from the book: >> >> {{extend 'layout.html'}} >> {{=form}} >> <script> >> jQuery(document).ready(function(){ >> if(jQuery('#taxpayer_married').prop('checked')) >> jQuery('#taxpayer_spouse_name__row').show(); >> else jQuery('#taxpayer_spouse_name__row').hide(); >> jQuery('#taxpayer_married').change(function(){ >> if(jQuery('#taxpayer_married').prop('checked')) >> jQuery('#taxpayer_spouse_name__row').show(); >> else jQuery('#taxpayer_spouse_name__row').hide();}); >> }); >> </script> >> >> >> I have 3 seperate sections of the form, each section has it's own script, >> showing and hiding 5 form fields within each. I don't understand jQuery all >> that well, is there a way to make it less repetitive? I'm over 160 lines of >> code for just showing and hiding fields, I'm hoping there is a better way. >> >> >> >> -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.

