1

autocomplete と onPaste という 2 つのイベントが一意のフィールドでリッスンしています。私の目標は、貼り付け時に別のロジックを呼び出し、入力時にオートコンプリートを使用することです。

私は次の方法でこれを行いました:

$("#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.preventDefault(); 呼び出されるか、早すぎる (setTimeout からのコードを防止する)、または遅すぎる (quickSearch 関数を実行できる)。

この状況に対処する方法はありますか?

JSFddle は次のとおりです: https://jsfiddle.net/mk242zkz/1/

オートコンプリート ライブラリが見つからないため、テストできません。

4

2 に答える 2

1

代わりにこのロジックを使用できますが、スタイルが漠然としていて、期待される動作は何ですか...

$("#refno").on('paste', function () {
    $(this).autocomplete("disable").one('keydown', function () {
        $(this).autocomplete("enable");
    });    
});

-jsFiddle-

于 2015-10-19T13:32:05.303 に答える
0

JqueryUI オートコンプリートには、初期化中および初期化後にオートコンプリート要素で呼び出すことができるいくつかのストック メソッドが用意されています。

すでにご覧になっていると思いますが、オートコンプリートについては、こちらの API ドキュメントをご覧ください: Autocomplete Docs

貼り付けイベント内で、オートコンプリート オブジェクトで disable メソッドを使用してみてください。後で再度有効にすることを忘れないでください。

于 2015-10-19T13:33:28.010 に答える