Cherrypy中的复选框值

0 投票
1 回答
954 浏览
提问于 2025-04-16 17:14

我明白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”属性应该在整个文档中是唯一的。

接下来你有两个选择:

  1. 把“name”属性改成唯一的,比如 <input type="checkbox" name="3b">,这样你会得到 {..., '3a': u'on' '3c': u'on'} 这样的结果,或者
  2. 让值变得唯一,比如 <input type="checkbox" name="3" value="b">,这样你会得到 {..., '3': [u'a', u'c']} 这样的结果。

撰写回答