Dojoでは候補となる文字列をJSON・XML形式などで定義しておき、<select>マークアップのstoreに指定させる。読み込むライブラリが多いため初回ロード時に多少時間がかかるが、以降は安定して動作する。

HTMLファイル - autocomplete-dojo.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<link href="./js/dojo/dojo/resources/dojo.css" rel="stylesheet" type="text/css">
<link href="./js/dojo/dijit/themes/tundra/tundra.css" rel="stylesheet" type="text/css">
<title>Combobox / Dojo</title>
<script type="text/javascript" src="./js/dojo/dojo/dojo.js" djConfig="parseOnLoad: true"></script>
<script type="text/javascript">
<!--
    dojo.require('dojo.parser');
    dojo.require('dojo.data.ItemFileReadStore');
    dojo.require('dijit.form.ComboBox');

    // コンボボックス内の候補として表示する元データをロード
    var store = new dojo.data.ItemFileReadStore({url:'./autocomplete-dojo.json'});
-->
</script>

</head>
<body class="tundra">

<h1>Combobox / Dojo</h1>

<p>
    <select id="combo" dojoType="dijit.form.ComboBox" store="store"></select>
</p>

</body>

</html>

JSONファイル - autocomplete-dojo.json

{
    'identifier': 'name',
    'label': 'name',
    'items':
    [
        { 'name':'jQuery' },
        { 'name':'YUI' },
        { 'name':'Dojo' }
    ]
}

Firefoxでの動作イメージ

Internet Explorerでの動作イメージ