1
Q
複選框與掛架
A
回答
0
我假設,「我只能拿到第一價值」意味着你已經取得了一系列的複選框與「名字」你的表格內屬性的值相同?現在
,如果是這樣的話,你就想要基於框是否被選中或不布爾值的列表,你需要做兩件事情:
首先,當你定義你的表單元素使用表單編碼在你的複選框上,設置它使得複選框元素上的缺失值返回'False'。這樣,除非複選框爲「on」,否則瀏覽器不會發送值,因此驗證會將缺少的值強制爲False。
class Registration(formencode.Schema):
box = formencode.validators.StringBoolean(if_missing=False)
接下來,假設您想要一個返回的列表,您將無法將所有元素命名爲相同。不過,主塔支持嵌套結構。看看formencode.variabledecode.NestedVariables。簡而言之,您需要定義一個NestedVariables實例作爲您的類屬性之一,並且您的表單'name'屬性需要更改以包含顯式索引。
編輯..這裏是我做了真正的快速完整的例子:
import logging
import pprint
import formencode
from pylons import request, response, session, tmpl_context as c, url
from pylons.controllers.util import abort, redirect
from pylons.decorators import validate
from testproj.lib.base import BaseController, render
log = logging.getLogger(__name__)
class CheckList(formencode.Schema):
box = formencode.validators.StringBoolean(if_missing=False)
hidden = formencode.validators.String()
class EnclosingForm(formencode.Schema):
pre_validators = [formencode.NestedVariables()]
boxes = formencode.ForEach(CheckList())
class MyformController(BaseController):
def index(self):
schema = EnclosingForm()
v = schema.to_python(dict(request.params))
# Return a rendered template
#return render('/myform.mako')
# or, return a response
response.content_type = 'text/plain'
return pprint.pformat(v)
然後查詢字符串?
boxes-0.box=true&boxes-0.hidden=hidden&boxes-1.box=true& boxes-1.hidden=hidden&boxes-2.hidden=hidden
最後,響應:
{'boxes': [{'box': True, 'hidden': u'hidden'}, {'box': True, 'hidden': u'hidden'}, {'box': False, 'hidden': u'hidden'}]}
HTH
相關問題
- 1. 播放框架掛
- 2. 與複選框
- 3. Android:ListView與複選框
- 4. Angularjs與複選框
- 5. 恢復與複選框
- 6. 組合框與複選框
- 7. 列表框與複選框
- 8. Zend框架複選框問題
- 9. Play框架 - 複選框處理
- 10. Zend框架嵌套複選框
- 11. Yii框架,CGridView複選框幫助
- 12. 如何創建複選框 - Silex框架
- 13. 與選定的複選框
- 14. 複合框與WinForms中的複選框
- 15. 與選中的複選框複製行
- 16. 驗證複選框與jquery.validate.unobtrusive
- 17. Windows ListView與複選框
- 18. AS3:返回與複選框
- 19. 列表與複選框
- 20. 行插入與複選框
- 21. 複選框PHP與MySQL
- 22. ModalPopUpExtender與複選框驗證
- 23. ASPxGridView錯誤與複選框
- 24. 複選框與bash腳本
- 25. Django的RawIdWidget與複選框
- 26. 的ListView與複選框/ checkedtextview
- 27. 複選框隱藏與jquery
- 28. 與多個複選框
- 29. 問題與Javascript複選框
- 30. Angular2樹複選框與EventEmitter
隱藏字段確保NestedVariables看到存在被認爲是存在的形式。儘管如此,如果你只是處理複選框的集合,你可能只能讀取查詢字符串並自己進行挖掘。 – McJeff 2010-03-16 19:52:28