2011-07-16 12 views
17

カテゴリを含むjQueryオートコンプリートを取得しようとすると、選択した値を検索フィールドに、値を別の入力フィールドに返します。jQueryオートコンプリートカテゴリラベルと値を選択

私は値とラベルとカテゴリを持つようにデータを変更しました。

http://jsfiddle.net/chrisk/bM7ck/を参照してくださいしかし、値は常に代わりにラベルの検索フィールドに返されます。

答えて

26

これは、ラベルと値の両方を入力するとjquery UIオートコンプリートがどのように機能するかを示しています。ラベルを検索フィールドに戻す場合は、値フィールドの名前を変更します。

更新フィドル:http://jsfiddle.net/jensbits/bM7ck/3/

+0

1:OPがデータを変更できる場合、これは行くための一つの方法です。 –

+0

ありがとう、ありがとう、ありがとう! シンプルな修正と動作します。 – chrisk

+1

ようこそ。私はあなたが彼の焦点の提案のためにアンドリューに+1を与えることができるはずですので、あなたにぶつかりました。チームの努力。 –

17
あなたは、あなただけに近い必要だ

  1. あなたselectイベントハンドラの最後にreturn falseを追加し、
  2. focusのイベントハンドラを追加します。その値の代わりにラベルを使用して、上書きすることもできます。

はここにあなたのコードが更新されます:

$("#search").catcomplete({ 
    delay: 0, 
    source: data, 
    select: function(event, ui) { 
     $('#search').val(ui.item.label); 
     $('#searchval').val(ui.item.value); 
     return false; // Prevent the widget from inserting the value. 
    }, 
    focus: function(event, ui) { 
     $("#search").val(ui.item.label); 
     return false; // Prevent the widget from inserting the value. 
    } 
}); 

ここで更新例です:http://jsfiddle.net/q2kDU/

+0

私はJenの修正を済ませましたが、あなたの提案を追加しました。 ご協力いただきありがとうございます。 – chrisk

+0

@chrisk:問題ありません。 Jenの修正は良い方法です。 –

2
$(function() { 
     $("#searchitems").autocomplete({ 
      source: [<?php echo $search /*example for full list in php*/?>], 
      minLength: 2, 
      select: function(event, ui) { 
       event.preventDefault(); 
       $("#searchitems").val(ui.item.label); 
       $('#searchitemvalue').val(ui.item.value); 
       window.location="#"; //location to go when you select an item 
      }, 
      focus: function(event, ui) { 
       event.preventDefault(); 
       $("#searchitems").val(ui.item.label); 
       $('#searchitemsvalue').val(ui.item.value); 
      } 
     }); 
    }); 
+1

ここでいくつかの説明が良いでしょう –