【发布时间】:2015-08-25 12:37:12
【问题描述】:
我正在试图弄清楚如何让 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 属性设置为模糊。
步骤:
- 打开控制台
- 在上面的电子邮件字段中输入“a@b.com”,然后按 Tab
- 注意触发了自定义验证(好)
- 在电子邮件字段中输入“xyz”并按 Tab 键
- 注意欧芹类型验证启动(好)
- 在查看控制台的电子邮件字段中输入“xyz@test.com”
- 请注意,当输入变为 有效的电子邮件(在这种情况下,当您在 .com 中按字母 c 时)vs 模糊:(
如何确保仅在无效字段的模糊事件上触发验证?
提前致谢!
【问题讨论】:
标签: parsley.js