2013-03-08 98 views
7

流星還沒有內置驗證智能包。我應該考慮哪些驗證庫?其他人使用什麼?流星輸入驗證

+0

我知道你已經知道了,但形式的支持即將到來。最新的信息(你仍然可以從即使你決定使用大衛的下方很好的答案中受益),可以在http://www.youtube.com/watch?feature=player_embedded&v=RSASfz_vU2k – 2013-03-10 18:49:26

回答

9

我們決定使用simpleSchema與Collection2和自動窗體進行驗證。這是一個非常複雜的解決方案。我們使用這種方法節省了大量時間,而不是試圖手動滾動每個表單。

簡單地通過定義的驗證規則的方案(針對數據類型自動提供和isRequired設置驗證規則),然後創建與自動窗體(的一行代碼)的表單,你會得到這一切都是免費的

  • 使用bootstrap3類的自動生成表單。
  • 集合模式中所有鍵的適當HTML5字段。
  • 一個提交按鈕,用於收集輸入的值並將其插入到您的收藏中。
  • 基於附加到您的集合的模式進行表單驗證。默認情況下,表單在用戶提交時進行驗證。如果有任何內容無效,則在用戶修復問題時,表單將不斷在關鍵字(限制)上重新驗證。
  • 字段下顯示的默認驗證錯誤消息,可以自定義和翻譯。

流星簡單模式 流星的簡單的,被動的模式驗證智能包。 https://github.com/aldeed/meteor-simple-schema

流星collection2 智能軟件包流星延伸Me​​teor.Collection到用於指定模式並然後驗證針對該架構插入和更新時提供支持。還增加了對虛擬領域的支持。 https://github.com/aldeed/meteor-collection2

流星自動窗體 智能軟件包流星,增加了UI組件和助手容易地創建具有自動插入和更新事件,並自動反應驗證基本形式。 https://github.com/aldeed/meteor-autoform

+0

通過這種方法你,如果你有不同的用戶語言這是一個很大的工作設置的每個錯誤消息 – 2014-12-31 21:13:10

+0

這是爲什麼?我們的應用程序完全是多語言的。我們使用Meteor的messageFormat包。讓我知道你需要做很多工作,我會盡力幫忙。 https://github.com/gadicc/meteor-messageformat/ – 2015-01-01 12:36:21

+0

如何顯示正確的朗不同的錯誤信息? – 2015-01-01 14:46:17

8

如果要使用meteorite,則只需搜索atmosphere packages即可查看受歡迎的內容。我目前使用jqBootstrapValidation。在過去,我使用了validate.js,但現在我更喜歡自舉集成。我聽到parsley.js是很酷的孩子們的歡迎,雖然在寫這篇文章的時候並沒有一個聰明的軟件包 - 但這很容易到solve

+0

找到,所以你不能安裝這些套裝包含開箱即用的流星?這隕石的東西是必需的?這是爲什麼?因爲這是一個非標準的軟件包格式或什麼?乾杯! – 2013-03-08 18:12:16

+2

流星只附帶一些軟件包。你需要隕石來安裝社區創建的軟件包。如果您在我的答案中看到最後一個鏈接,那麼只需將簡單的前端庫包含到您的項目中就夠了。所以,不需要安裝隕石,但是很多人都會運行它,因爲它使安裝軟件包變得更容易,但這取決於你。 – 2013-03-08 20:25:22

+0

謝謝你的幫助! – 2013-03-13 11:35:57

5

您已經有Tracker作爲Meteor的一部分,所以我將一個小教程和JSfiddle放在一起,介紹如何使用它來實現典型的表單驗證場景。

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

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

+0

院長嗨,你有沒有嘗試過使用simpleSchema?對於一個簡單的應用程序只有一對夫婦的形式可能是矯枉過正,但對於大型應用程序有許多形式,我們發現它比你必須自己實現所有細節的規範性辦法更富有成效。看看這個演示,看看你用很少的努力就能獲得多少功能! https://github.com/aldeed/meteor-autoform#demo – 2014-11-21 05:50:39

+2

有時表單不適用於您擁有的數據庫(或者是API調用),所以我打算展示如何推出自己的數據庫。謝謝你的提示。 – 2014-11-21 20:40:32

+3

實際上那不管,你仍然可以使用的模式來爲你自己或者不是數據庫提供驗證它是否。它實際上並不像ORM或其他東西那樣將數據寫入mongo。你可以控制這個。例如,即使在驗證Stripe API的支付信息時,我們也使用simpleSchema和autoform。 – 2014-11-25 06:39:55