0

Jqueryオートコンプリートに置き換える次の選択ボックスがあります。

<select name="selectarea" onchange="findCity(this.options[this.selectedIndex].value);" id="sel" />

JqueryUIのオートコンプリートコードは次のとおりです。

$(document).ready(function() {
    $( "#sel" ).autocomplete({
            source: "xml/states.php"
    });

    $( "#sel"  ).autocomplete('option','minLength',0);

    $( "#sel"  ).bind("click", function(event, ui) { 
    $( "#sel"  ).autocomplete( "search" , '' );

    }); 

});

問題は、Jqueryコードの「findCity」javascriptをどこに呼び出すかわからないことです。受信しているjson応答はphpファイルからのものであり、配列は次のようになります。

$STATES = array("scAllBusinesses"=>"All Businesses", 
"scAppraisals"=>"Appraisals", 
"scArchitect"=>"Architect", 
"scArtGallery"=>"Art Gallery", 
"scAttorney"=>"Attorney", 
"scBallet"=>"Ballet", 
"scBanks"=>"Banks", 
"scBar"=>"Bar",
);

オートコンプリートは正常に機能し、データが入力されますが、JavaScript呼び出し(findCity)をどこに配置するかがわかりません。どんな援助も大歓迎です、ありがとう。

4

2 に答える 2

0

私の最善の推測では、次のように、オートコンプリートに渡されるオプションに選択ハンドラーを追加する必要があります。

$(document).ready(function() {
    $( "#sel" ).autocomplete({
        source: "xml/states.php",
        minLength: 0,

        select: function(event, ui) {
            findCity(ui);
        }
    });

});
于 2012-05-17T19:59:12.133 に答える
0

autocomplete の change イベントにバインドします。jquery ui ドキュメントから:

値が変更された場合、フィールドがぼやけているときにトリガーされます。ui.item は、選択されたアイテムを参照します。

コード例

変更イベントを init オプションとして処理するコールバック関数を提供します。

   $( ".selector" ).autocomplete({
   change: function(event, ui) { ... }
});

次のタイプで変更イベントにバインドします: autocompletechange。

$( ".selector" ).bind( "autocompletechange", function(event, ui) {
  ...
});
于 2012-05-17T19:31:56.930 に答える