2016-03-24 9 views
0

私は<div>contenteditable=trueを持っています。私は、このフィールドにjqueryのオートコンプリートを添付入力とオートコンプリートを中心に

$(document).on('#my_div'n 'blur', function() {....... 

$('#my_div').autocomplete({ source : emails_directory }); 

オートコンプリートがうまく機能してたときにフィールドに記入し、ユーザーがフィールドを離れると入力が記録されますので、私はblurイベントを添付しますクリックした

私のぼかしイベントは、オートコンプリートをトリガーする前に入力した最初の文字だけを記録するという問題があります。

オートコンプリートを使用しない場合はフィールドの値を、オートコンプリートを使用する場合はオートコンプリートの値を記録するためにどのようなイベントを使用しますか。

例: 私はautocompleteから[email protected]を取得します。 「te」と入力すると、オートコンプリートに完全な電子メールが表示されます。 オートコンプリートリストでそれを選択し、フィールドに入力します。 私のぼかしイベントの記録は「te」です。私はそれを望みません。代わりに[email protected]を記録したいと思います。

Ex2: 私はオートコンプリートソースにない値を入力したいと思います。 私は[email protected]と入力しますが、オートコンプリートは表示されません。 ぼかしでは、完全な値が記録されます。

答えて

1

ぼかしでENTERのキーダウンイベントをトリガーすることができます。存在するのであれば、あなたはオートコンプリート値を取得できます。

$(document).on('#my_div', 'blur', function() { 
     var keyEvent = $.Event("keydown"); 
     keyEvent.keyCode = $.ui.keyCode.ENTER; 
     $(this).trigger(keyEvent); 
     ...... 
}); 

ともオートフォーカス忘れてはいけない:

$('#my_div').autocomplete(autoFocus: true, { source : emails_directory }); 
+0

感謝を。しかし、私はそれを取得しません。クリックすることでオートコンプリートを選択することもできますが、それでもENTERキーダウンがトリガーされますか? –

+0

はい、それは何も変えません。値は同じ –

+0

のままにしておきますよ、お試しになるよ、ありがとう –

関連する問題