【问题标题】:Validating HTML Forms in Web2py在 Web2py 中验证 HTML 表单
【发布时间】:2015-02-18 17:37:27
【问题描述】:

是否可以将 Web2py 的表单验证与标准 HTML 表单一起使用?例如,使用以下形式:

<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

【问题讨论】:

  • 如果是像 IS_ALPHANUMERIC 或 IS_NOT_EMPTY 这样简单的事情,在浏览器上使用 HTML5 或 Javascript 就足够了。

标签: web2py


【解决方案1】:

在控制器中,您可以执行以下操作:

def search():
    form = SQLFORM.factory(Field('query', requires=IS_ALPHANUMERIC()))
    if form.process().accepted:
        ...
    elif form.errors:
        ...
    return dict(form=form)

在视图中,将结束&lt;/form&gt;标签替换为{{=form.custom.end}},其中包括隐藏的表单名和CSRF令牌字段以及结束表单标签。

或者,你也可以直接使用验证器——只要实例化它,传入要验证的值,检查返回元组的第二个元素是否为None(表示验证成功):

if IS_ALPHANUMERIC()(request.vars.query)[1] is None:
    [code for successful validation]

【讨论】:

    猜你喜欢
    • 2018-08-28
    • 1970-01-01
    • 1970-01-01
    • 2012-08-11
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多