1

jQuery UI v1.9 を使用しています。jQuery UI オートコンプリートウィジェットを正常に実装しましたが、ユーザーが開いているメニューからアイテムを選択せず​​に、関連するオートコンプリート フィールドに文字を入力し続ける場合 (つまり、オートコンプリート メニューが非表示になっていても、ユーザーは文字を入力し続けます。これは、入力された名前の項目がそのメニューに存在しないためです)。

このような場合 (アイテムの選択が実行されていないが、オートコンプリート フィールドに文字列が存在する場合)、既存のオブジェクトを選択しているのではなく、カスタム オブジェクトを入力していることをユーザーに警告したいと思います。どうすればそれを作ることができますか?


:実際には、ユーザーに既存のアイテムを選択させるか、それが選択されていない場合は、ユーザーに新しいアイテムを作成するように促そうとしています。

4

1 に答える 1

2

アイテムが選択されているかどうかを確認できるオートコンプリート プラグインの change イベントにコールバック関数を設定できます。

$( "#autocomplete" ).autocomplete({
     change: function(e,ui){
         if(ui.item === null)
           alert('No item has been selected')  
    }
});

アップデート:

入力がフォーカスを失う前に変更イベントをトリガーする場合は、次のコードを使用して、キープレス イベントでトリガーします。

$( "#autocomplete" ).autocomplete({
         change: function(e,ui){
             if(!ui || ui.item === null)
                 console.log('No item has been selected') 
        }
    }).on('keypress',function(){$(this).autocomplete('option','change').call()});
于 2012-11-19T15:08:35.510 に答える