Cherrypy中的复选框值
我明白Cherrypy会把复选框的值以列表的形式提供给配置问题(CherryPy - 保存复选框选择到变量)
假设我有以下的表单数据:
... snip ...
<input type=checkbox id="1">
<input type=checkbox id="1">
<input type=checkbox id="1">
<input type=checkbox id="2">
<input type=checkbox id="2">
<input type=checkbox id="2">
<input type=checkbox id="3">
<input type=checkbox id="3">
<input type=checkbox id="3">
... snip ...
然后Cherrypy会把它处理成:
{'1': [u'on', u'on', u'on'],'2': [u'on', u'on', u'on'],'3': [u'on', u'on', u'on']}
从我取消选中第二个复选框id3开始,我得到:
{'1': [u'on', u'on', u'on'],'2': [u'on', u'on', u'on'],'3': [u'on', u'on']}
这样我就无法判断哪个复选框被取消选中了……如果在复选框未选中时能用'off'来表示就好了,但事实并不是这样。
有没有什么办法可以解决这个问题?
谢谢,
Jay
1 个回答
2
首先要说一点:HTML中的“id”属性应该在整个文档中是唯一的。
接下来你有两个选择:
- 把“name”属性改成唯一的,比如
<input type="checkbox" name="3b">
,这样你会得到{..., '3a': u'on' '3c': u'on'}
这样的结果,或者 - 让值变得唯一,比如
<input type="checkbox" name="3" value="b">
,这样你会得到{..., '3': [u'a', u'c']}
这样的结果。