0

基本的に、オートコンプリートを使用してjqueryUI入力から正しい値を取得するのに苦労することがあります。Ivは、動作を示すためにjsfiddleを作成しました。正確な問題を説明するのは難しいですが、ここにフィドルがあります:

http://jsfiddle.net/B4mXH/14/

再現するには、ブラウザ開発ツールのjsコンソールを開いたまま、次の手順を正確に実行します。

  1. テキスト入力に焦点を当てる
  2. マウスを入力から離します
  3. タイプc
  4. キーボードの下矢印を押して「abc」を選択します
  5. オプション「cde」にカーソルを合わせます
  6. ボタンをクリックします。

エラー:値を取得できません。undefinedはコンソールに記録されます。期待される:入力ボックス内にある値。お願いします=)

それが重要な場合は、クロムを使用しています。

4

1 に答える 1

1

changeハンドラーを交換するblurと、意図したとおりに機能します。

$('#autocomplete').blur(function(event, ui) {
    value = $(this).val();
});

理由はわかりませんが、保存された変数changeの結果に影響を与えるイベントをUI がプログラムで起動すると想定しています。value

また、テキスト入力の現在の値を常に取得したい場合は、変数に格納する代わりに、使用時にクエリを実行できます。

$('#button').click(function() {
    console.log("clicked with : " + $('#autocomplete').val());
});

まだそれを使用しないように、プロジェクトにいくつかの制限がある場合がありますが、使用できる場合は最も防弾の方法です。

于 2012-09-21T12:45:32.873 に答える