是否可以使用标准HTML表单的Web2py表单验证?例如,使用以下格式:
<form class="search" action="{{=URL('search')}}" method="get">
<div class="input-append">
<input type="text" id="query" name="query" class="span3" placeholder="Search the website"/>
<button type="submit" class="btn"><i class="icon-search"></i> Go! </button>
</div>
</form>
我可以检查输入字段IS_ALPHANUMERIC
还是IS_NOT_EMPTY
?或者,使用任何其他验证器? http://web2py.com/books/default/chapter/29/07/forms-and-validators#Validators
答案 0 :(得分:2)
在控制器中,您可以执行以下操作:
def search():
form = SQLFORM.factory(Field('query', requires=IS_ALPHANUMERIC()))
if form.process().accepted:
...
elif form.errors:
...
return dict(form=form)
在视图中,将结束</form>
标记替换为{{=form.custom.end}}
,其中包含隐藏的formname和CSRF标记字段以及结束表单标记。
或者,您可以直接使用验证器 - 只需实例化它,传入要验证的值,并检查返回的元组的第二个元素是否为None
(表示验证成功):< / p>
if IS_ALPHANUMERIC()(request.vars.query)[1] is None:
[code for successful validation]