如何使parsleyjs仅触发模糊验证(对于已经验证失败的字段)

时间:2015-08-25 12:37:12

标签: parsley.js

我正在试图找出如何使parsleyjs仅针对已经验证失败的字段触发模糊验证。

请参阅http://jsfiddle.net/billyroebuck/zbmv2d3w/

标记:

<form id="myform">
    <label for="email">Email</label>
    <input type="email" name="email"
        data-parsley-required="true"
        data-parsley-type="email"
        data-parsley-custom
        data-parsley-trigger="blur"
    />
    <input type="submit" />
</form>

JavaScript的:

window.Parsley.addValidator('custom',
function (value, requirement) {
    console.log('custom validation triggered');
    sleepFor(3000); // simulate a delay (testing only)
    if (value == 'test@test.com') {
        console.log('custom validation failed');
        return false;
    }
    console.log('custom validation passed');
    return true;
}, 32)
    .addMessage('en', 'custom', 'custom validation failed');

$('#myform').parsley();

function sleepFor(sleepDuration) {
    console.log('pretend this takes a while...');
    var now = new Date().getTime();
    while (new Date().getTime() < now + sleepDuration) { /* do nothing */
    }
}

parsleyjs版本2.2.0-rc1

电子邮件字段包含要检查的验证规则:

  • 提供了一个值,
  • 输入的值是有效的电子邮件地址
  • 一些自定义规则(假装这是一个AJAX请求)

我将此字段的parsley-trigger属性设置为blur。

步骤:

  • 打开控制台
  • 在上面的电子邮件字段中输入“a@b.com”,然后按标签
  • 请注意,自定义验证已触发(正常)
  • 在电子邮件字段中输入“xyz”,然后按标签
  • 请注意,欧芹类型验证会启动(好)
  • 在电子邮件字段中输入“xyz@test.com”查看控制台
  • 请注意,输入变为a时会触发自定义验证 有效的电子邮件(在这种情况下,当你按.com中的字母c)vs 模糊:(

如何确保仅在无效字段的模糊事件上触发验证?

提前致谢!

1 个答案:

答案 0 :(得分:0)

我担心目前没有这样的选择。我们的想法是尽快删除错误消息,每个人似乎都喜欢这样。