如何为同一字段定制不同的错误消息

How to customize different error messages for the same field?

本文关键字:错误 消息 字段      更新时间:2023-09-26

我有以下字段,使用它自己的正则表达式进行验证:

<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]*$"/>

字段有多个验证失败状态,我希望每个状态都有不同的错误消息。

例如,如果用户输入一个空格,我希望错误消息显示"No空格允许",但如果它有一个数字字符,我希望错误消息显示"No numbers allowed"。

我已经试着通过阅读文档来弄清楚如何做到这一点,但我仍然对如何实现这一点感到困惑。

我用欧芹2.0.0-rc4

是的,这不是用欧芹容易做到的事情。每个验证器都有一个唯一的错误消息。

如果你想这样做,出于UI/UX的目的,你可能有两种可能性:

1)您需要定义一些自定义验证器,以及它们相关的消息。

在你的例子中:

  • 创建一个验证器nospaces及其消息,优先级为66
  • 创建一个验证器nonumbers及其消息,优先级为65
  • 仍然使用您的pattern验证器(64优先级),并最终更改其消息,如'只允许字母'

然后将这3个验证器添加到您的输入中,根据它们各自的优先级,它们将以正确的顺序被触发,以显示您想要的错误消息,如您的问题所述。

优点:易于重用
缺点:需要做一些工作

2)保留您的模式验证器,并为该输入绑定一个自定义函数到parsley:field:error事件,并执行您的检查以显示您想要的该字段的正确错误消息,而不是默认的

优点:可能更少的工作,在一个单一的功能
缺点:没有多少可重用性