jQuery Validate 对 type="email" 和 multiple 做了错误的事情

jQuery Validate does wrong thing with type="email" and multiple

我们正在更新表单以使用正确的 html 5 种输入类型。我们的输入字段如下:

<input name="AlternateEmailAddress" class="validation-error" id="AlternateEmailAddress" aria-invalid="true" aria-describedby="AlternateEmailAddress-error" type="email" value="" autocorrect="off" autocomplete="off" autocapitalize="off" multiple>

我们还使用了 jQuery Validate,版本 v1.15.1,因为我们需要支持旧版浏览器,并且需要一个自定义插件来处理多个电子邮件地址。规则设置如下

AlternateEmailAddress: {
    multipleemail:true,
    maxlength:1000,
    asciionly:true
}

multipleemail 和 asciionly 是我们的自定义值。 multiplemail 类似于 jQuery validation plugin multiple email addresses.

但是,出于某种原因,jQueryValidate 会执行单个电子邮件验证,即使我们已将其关闭。它使用的是默认文本,而不是我们指定的文本。

有没有办法关闭 type="email" 验证,或者当我们使用多个属性时是否有修复方法?

Is there a way to turn type="email" validation off, or is there a fix for when we use the multiple attribute?

您拥有 type="email" 属性这一简单事实会自动触发 jQuery 验证中的 email 验证规则。

您可以通过在 .validate() 方法中将此规则定义为 false 来禁用它。

....
AlternateEmailAddress: {
    email: false,         // <- disable email rule
    multipleemail: true,
    maxlength: 1000,
    asciionly: true
    ...

演示:jsfiddle.net/196bdo8g/