我有两个事件监听一个唯一的字段:autocomplete和onPaste。我的目标是在粘贴时调用另一个逻辑,并在输入时使用自动完成。
我是这样做的:
$("#refno").on('paste', function (e) {
setTimeout(function () {
//some logic here
}, 0);
e.preventDefault();
})
function quickSearch(fieldName) {
//some other logic here
}
quickSearch('.open-invoices-quick-search');
问题是e.p preventdefault ();或者太早(防止setTimeout的代码),或者太晚,允许quickSearch函数被执行。
你知道如何处理这种情况吗?
这是JSFddle: https://jsfiddle.net/mk242zkz/1/
无法测试,因为我找不到自动完成库。
您可以使用此逻辑,但样式模糊的是什么是您期望的行为…
$("#refno").on('paste', function () {
$(this).autocomplete("disable").one('keydown', function () {
$(this).autocomplete("enable");
});
});
-jsFiddle -
JqueryUI autocomplete提供了一些stock方法,您可以在初始化期间和之后调用autocomplete元素。
我相信你已经看到了它,但看看这里的API文档自动完成:自动完成文档
在粘贴事件中尝试在自动完成对象上使用disable方法。