コンボボックスはまたテキストボックスであるので、リスナを加える場合、onChangingイベントは送信されます。このイベントを監視することで、Google Suggests[42]がしているように、ドロップダウンリストを処理します。この機能はオートコンプリートと呼ばれます。
以下に説明したように、ユーザーが入力しているものに基づいて、ドロップダウンリストを埋めることができます。
<combobox id="combo" autodrop="true" onChanging="suggest()"/>
<zscript>
void suggest() {
combo.getItems().clear();
if (event.value.startsWith("A")) {
combo.appendItem("Ace");
combo.appendItem("Ajax");
combo.appendItem("Apple");
} else if (event.value.startsWith("B")) {
combo.appendItem("Best");
combo.appendItem("Blog");
}
}
</zscript>
onChangingイベントが受信されたとき、コンボボックスのコンテンツはまだ変更されていません。このため、コンボボックスのvalueプロパティを使用できません。それよりも、イベント(org.zkoss.zk.ui.event.InputEvent)のvalueプロパティを使うべきです。