I have a SQLFORM.factory form that has multiple fields, one hidden by default in the view (via jquery) and shown when another field, a dropdown select, changes to some value. In the code below, field_A is shown if field_B 'Choice 2' is selected.
The problem is that fields (eg field_A) which are shown only after the dropdown is changed are not being validated properly. Here, field_B and field_C are validated just fine (they are never hidden), yet field_A is not validated in the code below - it could be anything and the form will still submit. form = SQLFORM.factory( Field( 'field_A', requires=IS_IN_SET(['Choice 1', 'Choice 2'], multiple=False, zero='Please choose') ), Field( 'field_B', requires=IS_IN_SET(['Choice 1', 'Choice 2'], multiple=False, zero='Please choose') ), Field( 'field_C', requires=IS_IN_SET(['Choice 1', 'Choice 2'], multiple=False, zero='Please choose') ) ) def cvalidator(form): if form.vars.field_B == 'B Choice 2': if not form.vars.field_A: form.vars.field_A.errors = 'Fill it in' if form.accepts(request.vars, session, onvalidation=cvalidator): pass <script> jQuery(document).ready(function() { jQuery('#no_table_field_A__row').hide(); jQuery('#no_table_field_B').change(function(){ if( jQuery('#no_table_field_B option:selected').text()=='Choice 2' ){ jQuery('#no_table_field_A__row').show(); }else{ jQuery('#no_table_field_A__row').hide();}; }); }); </script> {{=form}} How can I get all fields to validate properly here? Thanks for help, -j -- --- 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 web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.