2012-03-23 55 views
1

我有一個表的內容很多領域web2py的控制形式,表演場時,選擇選項

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會出現和invoiceheaderreminderheader仍然隱藏.. 當用戶類型更改爲invoice,顯示的字段invoiceheader ...等

回答

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>