2012-05-17 64 views
0

我有以下的選擇框,我用jQuery自動完成更換:轉換選擇列表jQuery用戶界面自動完成

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

的jQuery UI的自動完成代碼:

$(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)。任何援助非常感謝,謝謝。

回答

0

綁定到自動完成的更改事件。 From the jquery ui documentation

當字段模糊時觸發,如果值已更改; ui.item 引用所選項目。

代碼示例

提供一個回調函數來處理變更事件進行 選項。

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

類型來綁定所述變化事件:autocompletechange。

$(".selector").bind("autocompletechange", function(event, ui) { 
    ... 
}); 
+0

findCity的JavaScript代碼(this.options [this.selectedIndex] .value的) ;適用於選擇框,不確定自動完成使用哪些代碼。 – Jim

0

我最好的猜測是,你需要一個選擇處理程序添加到通過選項來自動完成,像這樣:

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

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

}); 
+0

是否嘗試使用以下代碼:$(文件)。就緒(函數(){ $( 「#sel」).autocomplete({ 源: 「XML/states.php」 }); \t \t \t \t $( 「#sel」).autocomplete( '選項', '的minLength',0); \t \t $( 「#sel」).bind( 「點擊」,函數(事件,UI){ \t \t $( 「#sel」).autocomplete( 「搜索」, ''); \t \t}); \t \t \t \t $(「#sel」).bind(「autocompletechange」,function(event,ui)findCity(ui); \t \t}); \t \t });我試圖觸發的JavaScript是一個switch語句:function findCity(which) if(which!= 0) { switch(which) { – Jim

相關問題