Hello,

I've been trying to string together pieces from the book and multiple 
forums for working with the SmartGrid edit forms and I'm not sure the best 
way to validate certain fields...


I am currently using jQuery to hide fieldA if fieldB is selected, but I am 
running into an error with web2py...

Let's say FieldC is required and Field A are required...

If FieldA is shown, and I submit the form then I get an error because 
fieldC is empty.

I was looking at the onvalidation method for sqlform.smartgrid, but I'm not 
quite sure how to apply it or if it's necessary here.

Here is my code:

<script>
        $(document).ready(function(){
    $("select").change(function(){
        $(this).find("option:selected").each(function(){
            if($(this).attr("value")=="value1"){
                $("#table_fieldA__row").hide();
                $("#table_fieldB__row").hide();
                $("#table_fieldC__row").show();
            }
            else if($(this).attr("value")=="value2"){
                $("#table_fieldA__row").show();
                $("#table_fieldB__row").show();
                $("#table_fieldC__row").hide();


            }
            else{
                $("#table_fieldA__row").hide();
                $("#table_fieldB__row").hide();
                $("#table_fieldC__row").hide();

            }
        });
    }).change();
});
</script>

Is there something I could be doing better inside the controller or 
smartgrid?

    grid = SQLFORM.smartgrid(table.field, onvalidation=source_validate, 
maxtextlength=100)
    if grid.create_form:
        if grid.create_form.errors:
            response.flash = "Error... please check form"
    elif grid.update_form:
        if grid.update_form.errors:
            response.flash= "Error... 3"
    else:
        return dict(grid=grid)
    return dict(grid=grid)

def source_validate(form):
    #print "In onvalidation callback"
    #print form.vars
    form.errors = True  # this prevents the submission from completing

    # ...or to add messages to specific elements on the form
    form.errors.fielda = "Must specify a value!"
    form.errors.fieldb = "Please select a value2"
    form.errors.fieldc = "Must not be empty!"

Thank you for your help

-- 
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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to