Hi,
I have checkbox group (checkboxes with same name) in my form

categoryForm = form.Form(
    #other form elements here
    form.Checkbox('categories', value='cat1'),
    form.Checkbox('categories', value='cat2'),
    form.Checkbox('categories', value='cat3'),)


and handle it in class like this

data = web.input(categories=[])
frmCategory = categoryForm()if not frmCategory.validates(data):
    return frmCategory.render()

I have checked checkboxes' values as list and send them form's validate
function as source data but it fails when it checks checkbox's validation.
The problem is Checkbox class's set_value() function. It sets checked
property with bool(value). In this situation value is a list which has
checked checkboxes' values but not unchecked ones. However it renders as
checked also unchecked checkboxes after (failed)validation. I built this[1]
patch to handle this. How do you handle this?

[1]:

*** form.py    2010-03-20 19:40:06.000000000 +0200--- form_modified.py
   2011-03-17 10:10:01.198136668 +0200****************** 301,307 ****
          return '<input %s/>' % attrs

      def set_value(self, value):!         self.checked = bool(value)

      def get_value(self):
          return self.checked--- 301,313 ----
          return '<input %s/>' % attrs

      def set_value(self, value):!     if isinstance(value, list):!
     if self.value in value:!                 self.checked = True!
    else:!             self.checked = False!     else:!
self.checked = bool(value)

      def get_value(self):
          return self.checked

-- 
Aydın Şen

-- 
You received this message because you are subscribed to the Google Groups 
"web.py" group.
To post to this group, send email to webpy@googlegroups.com.
To unsubscribe from this group, send email to 
webpy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/webpy?hl=en.

Reply via email to