例如我有这个字段
Field('yourref', type='string',
label=T('Your reference')),
在 HTML 中显示为 INPUT
<input id='table_yourref' name='yourref' value=''/>
我想这样显示
<input id='table_yourref' name='yourref' value=''/>
<a onclick='add()'>Add</a>
<a onclick='remove()'>Remove</a>
add()
和 remove()
是用于添加或删除字段的 jQuery 函数
最佳答案
最好的方法可能是创建一个 custom widget :
def mywidget(field, value):
return CAT(INPUT(_name=field.name,
_id='%s_%s' % (field._tablename, field.name),
_class=field.type,
_value=value, requires=field.requires),
A('Add', _onclick='add()'),
A('Remove', _onclick='remove()'))
...
Field('yourref', type='string', label=T('Your reference'),
widget=mywidget)
您还可以使用 server-side DOM在表单创建后将链接插入表单:
form = crud.create(db.mytable)
form.element('#mytable_myfield__row .w2p_fw').append(A('Add', _onclick='add()'))
form.element('#mytable_myfield__row .w2p_fw').append(A('Remove', _onclick='remove()'))
自定义小部件的优点是它会应用于所有基于 db.mytable 创建的表单,而 DOM 方法必须单独应用于每个表单。
关于javascript - web2py CRUD.create() 表单中的字段表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10066689/