2010-03-24 43 views
2

我建立一个框架,将验证基于写入JSON形式要求规范形式两个客户端(JavaScript)和服务器端。HTML表单要求规范

的目的是让服务器和客户端,使代码更易于维护,快写,少马车上摆脱逻辑等效代码。

规范格式可能看起来是这样的:

{ '<field_name>' : ['<validation_function>', 'req', ['<requirement>', <param>], ...], ... } 

(需求列表进行排序,以便用户可以先获得最基本的错误信息,“请求”的要求,必须是第一位的,如果它存在和手段该字段是必需的)

如)

{ 
    'name' : ['string', 'req', ['min',6], ['max',150], ['match', /^[\sa-z0-9ÅÄÖåäö&]$/i], ['not_match', /^tmp_/]], 
    'email' : ['email', 'req'], 
    'email_confirm' : ['same_as', 'email'], 
    'password' : ['string', 'req', ['min', 6], ['max', 64], ['match', /^[a-z0-9\[email protected]#\$%^&*_+.]$/i] ], 
} 

有谁知道类似的技术吗?我认为Rails验证框架解决了错误级别的问题,因为我发现表单通常在多个模型上运行。

回答

0

我知道Django的有一个验证框架了。但它也发生在后端。

但是,如果后端是唯一可以知道输入的数据是否有效的地方?例如,此验证系统的用户可能希望确保电子邮件地址尚未用于其他帐户。然后,检查不会发生在客户端。

+0

是一些检查只能在服务器端完成。但是,我只是试图解决应该在客户端和服务器端进行验证的问题。对于仅服务器端检查,不存在重复代码。 – Peder 2010-03-24 14:18:35

+0

一个非常好的主意。除了说你的想法是好的,我无法给你一个很好的答案。 – mojbro 2010-03-24 14:37:20

0

你有没有考虑通过XMLHttpRequest重用后端验证和返回任何错误的详细信息作为JSON适合容易更新的形式显示错误? Simon Willison在他的高级Django演示文稿中(从幻灯片56开始)使用Django的优秀django.forms模块放置example of doing so

不错,因为这是,我也想抓挠驱动你的问题相同的痒,这就是为什么我开始porting django.forms to JavaScript in js-forms,这是很远,但远远没有准备好它的预期用途,这是使用相同的核心代码库使用相同的Form对象定义在前端和后端运行适当的验证。

+0

对于大多数验证目的而言,向服务器发送ajax验证请求是缓慢且浪费的。 感谢您的项目和django.forms API的链接。它看起来很有趣。 – Peder 2010-03-24 14:28:00

0

可是可是......还有的是如何做之前在轨嵌套模型/表格,并在V2.3它得到了一些不错的支持,不是吗?

rails 2.3 releasenotes (#nested object forms))

这并不是说每个人都使用的轨道,当然:)

+0

嵌套对象形式的改进看起来很有趣。感谢那个链接。不过,我仍然不知道如何使用Rails验证框架为多页表单创建需求。我怎样才能获得Rails验证框架来生成jQuery兼容的javascript验证? – Peder 2010-03-24 14:16:26