如何根据现有触发器创建自定义 jquery 触发器

How to create custom jquery trigger based on existing one

我有一个带有电子邮件的注册表单, 我正在使用 ParsleyJS 来验证客户端。

当我使用 data-parsley-trigger="keyup" 属性时,它工作完美,但是 我们只想在用户按下 @ 键盘按钮时过滤 keyup, 因为我们更喜欢它而不是在第一个 keyup 上开始 parsley 验证。

parsley framwork 支持 jquery 事件,所以我添加自己的自定义 keyup 应该可以。

类似于:

<input type="text" data-parsley-type="email" data-parsley-trigger="focusout customkeyup"/>

jQuery('#myForm').keyup( function(e) {
    if (e.which == 50) {
        console.log('Charcter was typed. It was: " + String.fromCharCode(e.which)');
        jQuery(document).trigger('customkeyup');
    }
});

但它不起作用 - 我希望它在按下 @ 后才开始验证,不幸的是只有 focusout 似乎有效,请帮助。

已解决:

我使用 stopPropagation() 手动停止 keyup 触发器,只有当 @ 被点击时,然后手动触发我的自定义触发器。

jQuery('#contactEmail').keyup( function(e) {
    e.stopPropagation();
    if (e.which == 50) {
        console.log('Charcter was typed. It was: " + String.fromCharCode(e.which)');
        jQuery('#contactEmail').trigger('customkeyup')
    }
});

和输入:

<input type="text" id="contactEmail" data-parsley-type="email" data-parsley-trigger="customkeyup"/>