0

オートコンプリート機能を備えたテキストボックスがあります:

 $( "#mytextbox" ).autocomplete({
            source: bigData,
                        
            select: function(event, ui) {
                            
            $("#mytextbox").val(set this value here);
                        
            }
   });

ご覧のとおり、オプションが選択されたときに、テキストボックスで実際に値を変更したいのです! ばかげているように聞こえるかもしれませんが、オートコンプリート オプションを使用すると、オプションごとに多くの情報を含む詳細なリストが表示されますが、すべてのデータを入力する必要はありません。データの小さなセグメントが必要なだけです。たとえば、都市の場合は次のようになります。

バーミンガム、アメリカ、郵便番号...

バーミンガム、英国、郵便番号...

バーミンガム、別の場所...

正しい「バーミンガム」を選択できるようにしたいのですが、他のすべての情報を入力したくありません。そのとき、私がどちらを選択するかによって、どのような違いがありますか? 他の情報は別のボックスに入力されるため、正しい都市が重要です。

では、オートコンプリート関数に割り当てられたテキストボックスを関数内で変更するにはどうすればよいですか? 出来ますか?

4

1 に答える 1

0

jquery-ui docs によると、オブジェクトには、オートコンプリートドロップダウンから選択されたアイテムであるuiオブジェクトが含まれています。itemしたがって、アイテムが説明どおりにリストされている場合、つまりBirmingham, UK, 15780、文字列をカンマで分割し、最初の部分のみを使用してテキストボックスの値を置き換えることができます。

$( "#mytextbox" ).autocomplete({
        source: bigData,

        select: function(event, ui) {
          // not sure if ui.item is the text value itself
          // or an HTML item, gotta check that. I'm assuming a string here.
          var str = ui.item.split(",")[0];

          $("#mytextbox").val(str);
        }
});

もちろん、空白などをトリミングすることでそれを拡張できます。これは、データの取得方法によって異なります...

于 2012-08-21T13:12:04.363 に答える