复选框在python web.py中不起作用

时间:2012-11-15 06:43:57

标签: python checkbox web.py

我正在使用web.py框架来创建小网页。我有一个基本的html,其中包含一个带有四个复选框字段的表单,如下所示

home.html的

$def with ( )
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Home</title>
</head>
 <body>
   <form method="POST" action="/checkboxes">
      <p>check_1     <input type="checkbox" id="curly_1" value="" name="curly_1"/></p>
      <p>check_2     <input type="checkbox" id="curly_2" value="" name="curly_2"/></p>  
      <p>check_3     <input type="checkbox" id="curly_3" value="" name="curly_3"/></p>  
      <p>check_4     <input type="checkbox" id="curly_4" value="" name="curly_4"/></p>      
      <button id="submit" name="submit">Submit</button>
   </form>
 </body>
</html>

index.py

import os
import sys
import web
from web import form

render = web.template.render('templates/')


urls = (
  '/checkboxes',   'Checkboxes',  
)
app = web.application(urls, globals())

class Checkboxes:

    def POST(self):
        i = web.input(groups = {})
        print i,">>>>>>>>>>>>"
        raise web.seeother('/checkboxes')

if __name__ == "__main__":
    web.internalerror = web.debugerror
    app.run()  

结果:

<Storage {'curly_3': u'', 'submit': u'', 'curly_4': u'', 'curly_1': u'', 'groups': [], 'curly_2': u''}> >>>>>>>>>>>>

所以从html视图我可以看到四个checkbox字段,我已经检查了所有复选框并单击了提交按钮,现在它应该来到Checkboxes类并且应该打印输入的结果(如上所示,在post方法中检查的复选框。

但结果我得到空字符串(无结果),如上所示,

任何人都可以告诉我上述代码中的错误

另外如何获取所选复选框的值?

2 个答案:

答案 0 :(得分:1)

web.input()返回的字典中存在复选框元素的名称表示该字段已被选中。否则,它将不会出现在字典中。尝试检查表单上四个复选框的子集,我想你会明白我的意思。

更多详情:https://groups.google.com/forum/#!searchin/webpy/checkbox/webpy/PVBdPv7kGDM/IqgLptUEN-EJ

答案 1 :(得分:1)

如果您只需要选中或取消选中所有复选框值,则可以像处理ajax一样处理它。对于此更改输入类型提交到按钮。然后选中是否选中所有输入复选框并将其值填入json。然后它的值会使你的控制器发布方法失效。