2014-03-26 16 views
2

我有一個使用它自己的正則表達式驗證以下領域:如何爲同一字段自定義不同的錯誤消息?

<input type="text" name="first-name" class="form-control" id="first-name" placeholder="First Name" 
     data-parsley-trigger="change" required data-parsley-alpha data-parsley-pattern="^[A-Za-z]*$"/> 

現場有多個驗證失敗狀態,我想每一個這些國家有不同的錯誤信息。

例如,如果用戶輸入一個空格,我想錯誤消息說「不允許有空格」,但如果它有一個數字字符,我想錯誤消息說「不允許號碼」。

我試圖找出如何通過閱讀文檔要做到這一點,但我仍然對如何實現這一困惑。

我用香菜2.0.0-rc4

+2

input.setCustomValidity() – dandavis

+0

你能如何利用擬定在這種情況下的功能? –

+1

這比框架更好地完成;爲什麼不直接用正則表達式或indexOf來測試輸入值? – Algorath

回答

3

呀,這不是香菜容易可行。每個驗證器都有一個唯一的錯誤消息。

如果你想這樣做,爲UI/UX的目的,你可以有兩種可能性:

1)你需要確定你的一些自定義的驗證,和他們相關的消息。

在您的例子:

  • 創建一個驗證nospaces及其消息66的優先級
  • 創建一個驗證nonumbers和該消息的一個65優先
  • 仍然使用pattern驗證器(64優先級)並最終通過類似「只允許alphanum」

改變其信息加那麼這3個驗證爲y我們的輸入,並根據各自的優先權,他們將按照正確的順序來顯示你想在你的問題中描述正確的錯誤信息被解僱。

優點:容易重複使用
缺點:有些工作是需要

2)保持你的模式驗證,並結合自定義函數的parsley:field:error事件此輸入,並做你的支票,以顯示正確的錯誤信息你想爲這個領域,而不是默認的一個

優點:較少的工作,也許,在一個單一的功能
缺點:沒有太多的可重複使用的

+0

你能告訴我如何自定義錯誤信息嗎?我所有嘗試使用[updateError](http://parsleyjs.org/doc/index.html#psly-ui-for-javascript)只有一些作品。在調試器中,如果在調用'updateError'函數後立即暫停,我的錯誤消息會顯示,但在恢復之後,錯誤消息會變回默認錯誤消息。如果您希望看到我嘗試使用'updateError',我很樂意編輯我的問題以表明這一點。 –

+0

呃,無視最後的評論。我正在與你的第一個可能性。謝謝您的幫助!! –

+0

updateError函數可能存在問題。我會看看。最好的 – guillaumepotier

相關問題