使用Meteor进行表单输入验证

Max*_*ges 8 meteor

Meteor还没有内置的验证智能包.我应该考虑哪些验证库?其他人使用什么?

Max*_*ges 9

我们决定使用simpleSchema和Collection2以及autoform进行验证.这是一个非常复杂的解决方案.我们使用这种方法节省了大量时间,而不是尝试手动滚动每个表单.

只需定义一个带有验证规则的方案(自动为数据类型和isRequired设置提供验证规则)然后使用autoForm(单行代码)创建一个表单,您就可以免费获得所有这些

  • 使用bootstrap3类的自动生成的表单.
  • 适用于集合架构中所有键的HTML5字段.
  • 提交按钮,用于收集输入的值并将其插入到集合中.
  • 基于附加到您的集合的架构进行表单验证.默认情况下,表单在用户提交时进行验证.如果任何内容无效,则在用户修复问题时,表单会在keyup(限制)上不断重新验证.
  • 显示在字段下的默认验证错误消息,可以自定义和翻译.

meteor-simple-schema Meteor的简单,反应式模式验证智能包. https://github.com/aldeed/meteor-simple-schema

meteor-collection2 Meteor的一个智能包,它扩展了Meteor.Collection以支持指定模式,然后在插入和更新时验证该模式.还添加了对虚拟字段的支持. https://github.com/aldeed/meteor-collection2

meteor-autoform Meteor的一个智能包,它添加了UI组件和帮助程序,可以轻松创建具有自动插入和更新事件的基本表单,以及自动反应验证. https://github.com/aldeed/meteor-autoform


Dav*_*don 8

如果你想使用陨石,你可以搜索大气包,看看什么是流行的.我目前正在使用jqBootstrapValidation.在过去,我使用过validate.js,但是现在我更喜欢使用bootstrap集成.我听说parsley.js很酷的孩子很受欢迎,虽然在撰写本文时没有一个智能包装 - 但这很容易解决.

  • 流星只附带了一些包.您需要陨石才能安装社区创建的包.如果您在我的答案中看到最后一个链接,那么将简单的前端库包含到项目中就足够了.所以,不,你不需要安装陨石,但很多人运行它,因为它使安装包更容易,但这取决于你. (2认同)

Dea*_*ffe 5

你已经有了TrackerMeteor的一部分,所以我把一个小教程和JSfiddle放在一起,讨论如何使用它来实现典型的表单验证方案.

http://bit.ly/meteor-form-validation-video

http://bit.ly/meteor-form-validation-fiddle

  • 实际上,无论如何,您仍然可以使用模式来验证它是否适用于您拥有的数据库.它实际上并不像ORM或任何东西那样将数据写入mongo.你可以控制它.例如,即使在验证Stripe API的付款信息时,我们也会使用simpleSchema和autoform. (3认同)
  • 有时表单不适用于您拥有的数据库(或者它是用于API调用),所以我打算展示如何自己推送.谢谢你的提示. (2认同)