需要在webhelper的基础上自定义控件,不得已用了__setattr__的破坏封闭性方法。
废话少说,上代码
import webhelpers.html.tags as h
import webhelpers.util as u
def radios(name,groups,default_value=None):
list = []
for one in groups:
ck = {}
if one[0] == default_value:
ck = { 'checked': 'true' }
else:
ck = {}
r1 = h.radio(name,one[0],ck)
r2 = '<span class="ml5" onclick="previousSibling.click();">'+u.html_escape(one[1])+'</span>'
list.append(r1)
list.append(r2)
return ''.join(list)
def checkboxes(name,groups,default_value=None):
list = []
for one in groups:
ck = {}
if one[0] == default_value:
ck = { 'checked': 'true' }
else:
ck = {}
r1 = h.checkbox(name,one[0],ck)
r2 = '<span class="ml5" onclick="previousSibling.click();">'+u.html_escape(one[1])+'</span>'
list.append(r1)
list.append(r2)
return ''.join(list)
h.__setattr__('radios',radios)
h.__setattr__('checkboxes',checkboxes);