0

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

4

1 回答 1

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组件中,在这种情况下,整个表单提交和验证将通过 Ajax 自动处理(在单个 Ajax 请求中)。

如果你真的想做客户端验证,那么更好的选择是使用客户端验证库

于 2013-02-26T13:55:28.600 回答