我有一个表格内容很多字段
db.define_table('i2l_templates',
Field('id','id',
represent=lambda id:SPAN(A(T('View'),_href=URL('view_template',args=id)),' | ',
A(T('Edit'),_href=URL('edit_template',args=id)))),
Field('user_id', db.auth_user, default=auth.user_id, writable=False,readable=False,
label=T('User Id')),
Field('template_name', requires=IS_NOT_EMPTY(), type='string',
label=T('Template name')),
Field('template_type', requires=IS_IN_SET(('Letter', 'Invoice', 'Reminder')),
label=T('Template type')),
Field('myref_format', requires=IS_NOT_EMPTY(), type='string',
label=T('My reference')),
Field('myref_offset', type='integer',
label=T('My ref. Offset')),
Field('letterheader', type='integer',
label=T('Letter Header')),
Field('invoiceheader', type='integer',
label=T('Invoice header')),
Field('reminderheader', type='integer',
label=T('Reminder Header')),
format='%(template_name)s',
migrate=settings.migrate)
所以我想这样做
当用户选择模板类型Letter
时,会显示字段letterheader
,invoiceheader
和reminderheader
仍会隐藏。
当用户将类型更改为invoice
时,字段invoiceheader
会出现......依此类推
答案 0 :(得分:1)
这样做使用jQuery .. 例如:
<script>
jQuery(document).ready(function(){
jQuery('#i2l_templates_heading__row').hide();
jQuery('#i2l_templates_headingvalue__row').hide();
jQuery('#i2l_templates_template_type').change(function(){
if(jQuery('#i2l_templates_template_type').attr('value')=="{{=T('Invoice')}}")
{
jQuery('#i2l_templates_heading__row').show();
jQuery('#i2l_templates_headingvalue__row').show();
}
else {
jQuery('#i2l_templates_heading__row').hide();
jQuery('#i2l_templates_headingvalue__row').hide();
}});
});
</script>