I have a field named category:
db.define_table('mytab',
Field('categ', db.categ, label=T('Category'),
default=12,
requires=IS_IN_DB(db, 'categ.id', '%(name)s', zero=None),
),
I create a dynamic form for this field, whose value is submitted by ajax:
form = SQLFORM.factory(db.mytab, record=db.mytab[id])
form.element('select#no_table_categ')['_onchange'] = (
'ajax("%s",["categ"],":eval");' % URL(c='mycontroller',
f='cb_update_categ'))
and the form's category field is rendered by form.custom.widget.categ.
I get a pulldown menu of categories, as desired. This is not rendered as a
multi-list, nor is a multi-list desired. So far, so good.
However, upon change, what gets passed to the cb_update_categ() action is
not a single value but a list of values. This is not expected. Only 1 value
is expected.
Can anyone explain why this would be happening?