【问题标题】:How to use validators in client side?如何在客户端使用验证器?
【发布时间】:2013-02-11 13:15:49
【问题描述】:

我想通过 jquery 在客户端使用 web2py 验证器和我的自定义验证器!如何使用它们?

【问题讨论】:

    标签: python web2py


    【解决方案1】:

    web2py 验证器仅在服务器上工作。提交表单时,web2py 会在服务器上进行验证,如果有任何错误,它会返回表单以及要显示的任何错误消息。您也可以单独进行客户端验证,但这将独立于 web2py 的服务器端验证。

    更新:如果你想通过 Ajax 向服务器发送一个值并使用验证器来检查它,你可以直接调用验证器。例如:

    value, error = IS_EMAIL()('someone@example.com')
    

    所有验证器在调用时都接受一个值并返回一个元组,第一个元素是提交的值(或它的转换,取决于验证器),第二个元素是 None 如果验证通过或如果验证失败,则会出现错误消息。

    通过 Ajax 接受值并返回错误消息或“OK”的服务器端验证操作可能如下所示:

    def validate():
        value, error = globals()[request.vars.validator]()(request.vars.value)
        return error if error else 'OK'
    

    然后您可以使用以下 URL 进行 Ajax 调用:

    /myapp/mycontroller/validate?validator=IS_EMAIL&value=someone@example.com.
    

    但是,发送 Ajax 请求来分别验证每个字段的效率并不高,尤其是对于不需要任何服务器端处理的验证器。如果您不希望表单提交重新加载页面,另一种选择是将表单放在 web2py component 中,在这种情况下,整个表单提交和验证将通过 Ajax 自动处理(在单个 Ajax 请求中) .

    如果您真的想进行客户端验证,那么更好的选择是使用client-side validation library

    【讨论】:

    • 感谢@Anthony。但我有一个表单,我想在客户端检查其字段的验证。我编写了一个 webMethod 并使用 ajax 将字段的值发送给它。现在,我该如何使用验证器?你有推荐给我吗?
    猜你喜欢
    • 2019-01-16
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 2011-02-06
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    • 1970-01-01
    相关资源
    最近更新 更多