如何基于现有的创建自定义 jquery 触发器
Posted
技术标签:
【中文标题】如何基于现有的创建自定义 jquery 触发器【英文标题】:How to create custom jquery trigger based on existing one 【发布时间】:2018-02-11 19:34:13 【问题描述】:我有一个带有电子邮件的注册表单, 我正在使用 ParsleyJS 来验证客户端。
当我使用data-parsley-trigger="keyup"
attribute 时,它的工作很完美,但是
我们只想在用户按下@
键盘按钮时过滤keyup
,
因为我们更喜欢它而不是在第一次键入时开始欧芹验证。
欧芹框架支持 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
似乎起作用,请帮助。
【问题讨论】:
【参考方案1】:已解决:
我使用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"/>
【讨论】:
以上是关于如何基于现有的创建自定义 jquery 触发器的主要内容,如果未能解决你的问题,请参考以下文章
如何在不覆盖现有样式的情况下向 WPF 自定义控件添加触发器?