我们的注册和登录表单需要服务器端验证逻辑。我想提出在客户端上为每个输入块显示消息的最佳方式。
申请流程:
- 客户端表单提交
- 节点验证
- 重定向到在步骤 1 中呈现表单的视图。
我倾向于req.flash()
显示表单输入消息,但也许有更多的 OOP 方法来解决这个问题?
我有一个验证中间件来验证表单数据。如果验证失败,我可以告诉中间件要重新呈现什么表单,并且它将有一个带有字段名称的错误对象和该字段具有的错误数组。
我的表格最终看起来像这样:
include ../mixins/form-helpers
mixin errors()
form(action=url('messages_create'), method='post')
mixin csrf()
fieldset
legend contact
mixin field('text', 'subject', 'Subject')
mixin field('textarea', 'message', 'Message')
.form-actions
mixin submit('Send')
如果我在没有主题和消息的情况下发布此表单,我将设置以下对象。
var errors = { subject: ['is required'], message: ['is required'] };
我的错误混合将呈现所有错误,我的字段混合将添加一个错误类,因此我可以为失败的字段添加红色边框。
检查有效性。它专为将验证和错误附加到表单输入字段并适当地呈现它们而设计。