使用Parsley进行多个电子邮件验证的单个文本字段?

时间:2014-02-03 14:03:23

标签: html5 parsley.js

简单地说,是否可以使用Parsley验证多个电子邮件地址(逗号或分号分隔)的单个HTML输入字段?

我无法通过他们的文档找到它,所以我试图看看是否有任何我可能遗失的东西。

如果情况不可能,那么我愿意接受最佳替代解决方案,以结合我目前对其他领域的Parsley验证。

感谢您的意见。

2 个答案:

答案 0 :(得分:0)

您可以使用多个电子邮件地址,您必须在输入元素示例中添加此属性 multiple =“multiple”

<input type="email" multiple />

但我没有使用Parsley

这是指向多个电子邮件地址的示例模式的网站链接 example

答案 1 :(得分:0)

我提出的验证逗号分隔的电子邮件输入与parsleyjs的技巧是为文本字段创建custom validator并依赖browser's native support for validating multiple emails

<input type="text" name="emails" required data-parsley-multipleemail>

(nb:我们没有使用<input type="email" multiple />因此此解决方案不会降级为正确的电子邮件字段。)

Parsley在可用时依赖浏览器的原生验证器,因此我们也会这样做。 (仅限using regexp for email validation is a pandoras box加载Parsley.js之前,定义一个自定义验证器,如下所示:

window.ParsleyConfig = {
  validators: {
     multipleemail: {
       fn: function (value) {
         return $('<input type="email" multiple>').val(value)[0].checkValidity();
       },
       priority: 32
     }
   }
};

这是做什么的

  1. 创建虚拟电子邮件输入元素
  2. 为其分配提交的值
  3. [0]为我们提供原生的javascript元素(即没有jquery)
  4. 然后我们使用浏览器本机ValidityChecker返回true或false
  5. 返回结果
  6. 最后,在之后插入此代码,然后加载parsley为此验证器创建自定义验证消息(英文):

    window.ParsleyValidator && window.ParsleyValidator.addMessage('en', 'multipleemail', 'Invalid email(s)');