如何在客户端使用验证器?

时间:2013-02-26 06:56:33

标签: python web2py

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

1 个答案:

答案 0 :(得分: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