私はextjs 3.4.0を使用しています。
リストから項目を選択できるようにするためだけに必要な場合、または任意のテキストを送信する機能も必要な場合に、コンボ ボックスがどのように異なるかを理解しようとしています。
ここでは forceSelection: true/false が重要な構成オプションのようです。forceSelection: true を使用すると、ドロップダウン メニューから項目のみを選択でき、forceSelection: false を使用すると、任意のテキストを入力できるはずです。
サーバーにクエリを実行し、一致するオプションを含むドロップダウン メニューを取得することはうまく機能しますが、任意のテキスト (ドロップダウン メニューにないもの) を送信することはできません。クエリを入力するだけで送信されますが、一致するものがない場合は、Enter キーを押しても何も起こりません。
任意のテキストを送信するには、フォーム インスタンス内にコンボ ボックスを配置する必要がありますか? コンボ ボックスは一致を検索するときに完全にリクエストを送信できるため、これは奇妙に感じるでしょう。
更新:
これは私が持っている実際のコードです:
var store = new Ext.data.JsonStore({
url: '/store',
root: 'items',
totalProperty: 'count',
fields: Ext.data.Record.create( [ 'name', 'id' ] ),
id: 'id' });
var combo = new Ext.form.ComboBox({
store: store,
forceSelection: false,
typeAhead: true,
loadingText: '',
width: 170,
hideTrigger: true,
itemSelector: 'div.item',
applyTo: 'div.box',
queryParam: 'tx',
hiddenValue: 'something',
name: 'name',
displayField: 'name',
submitValue: true,
allowBlank: false,
onSelect: function( record ) { alert( record.data.name ); }
});