1

私は Kendo UI を使用しており、宣言型バインディングを使用してフォームの要素をバインドしています。コンボ ボックス ウィジェットを使用して、オプションのリストを検索します。ウィジェットは実際には期待どおりに動作していますが、値が変更された場合にのみ検索が要求されます (これは理にかなっています)。私が抱えている問題は、ユーザーがコンボボックスをぼかしたとき (入力の外側をクリックするなど) にのみ変更イベントが発生することです。

これは、ぼかし後に DOM 変更イベントが発生するために予想されることですが、Kendo UI のドキュメントでは、'data-value-update' パラメータを使用して、'keyup' で発生するイベントを指定できると記載されています。

残念ながら、これを機能させることはできません。コンボボックスの HTML は次のとおりです。

<input data-role='combobox' data-bind="value: comboBoxValue, events: { change: methodToDoSearch}" data-value-update="keyup" type="text" data-text-field='Text' data-value-field='Id' />

これは剣道UIテンプレートの一部として作成されています(ただし、テンプレートの外でテストしたので、違いはありません)

前もって感謝します。

4

2 に答える 2

0

このdata-value-update属性は、通常のテキスト ボックス ( ) でのみサポートされています<input type="text" />。Kendo ComboBox は、フォーカスを失った場合にのみ change イベントを発生させます。

于 2012-11-29T20:14:30.657 に答える
0

具体的には、data-value-update は、ウィジェットが適用されるバインドされたオブジェクトを更新することのみを目的としています (ウィジェットに何かを入力すると、observable は特定のイベントの値で更新されます。この場合は keyup)。

IE では、コンボボックス ウィジェットはコンボボックス データソース値の 1 つにしか設定できないため、オブザーバブルを一時的な非コンボボックス値にバインドしても意味がありません。

私はこれを試していませんが、イベント バインディングを介してどのイベントにバインドできますか? 剣道のデモでは、マウスオーバー、クリックなどが表示されます。おそらく、次のようなことを試してください。

<input data-role='combobox' data-bind="value: comboBoxValue, events: { change: methodToDoSearch, keyup: methodToDoSearch}" type="text" data-text-field='Text' data-value-field='Id' />

一般的に、キーアップ時にどのイベントを発生させたいですか? キーアップ時にコンボボックスのデータソースを変更するために手動で検索したい場合は、それを調べます。

于 2013-06-17T16:32:11.063 に答える