0

次のように、データソースにバインドされた AutoComplete ウィジェットがあります。

<input data-filter="contains" data-role="autocomplete" data-bind="source: styleData" data-text-field="style" id="style-name" />

データソースには次の項目があります。

  • ABC123
  • 123AC
  • ZZZ

オートコンプリート ボックスに A と入力すると、期待どおりに最後の項目が自動的に除外されます。次に B を押すと、2 番目の項目も除外されます。次にバックスペースを押すと、2 番目の項目が再び表示されます。ただし、最後のバックスペースを使用すると、3 番目の項目は表示されません。$('#style-name').getKendoAutoComplete()の値は空の文字列に解決されますが、dataSource のフィルターはまだ{field: 'style', logic: 'contains', value: 'A'}リストされています。

Windows 8.1 Update 1 の Firefox 30 と IE11 でテストしましたが、どちらも同じ結果が得られました。

4

2 に答える 2

0

そのため、ソースを熟読するのに時間を費やしましたが、この機能は、検索機能の次の行で示されているように意図されていると思います (kendo.autocomplete.js、2014 年第 1 四半期、301 行目)。

if (!length) {
    that.popup.close();
} else if (length >= that.options.minLength) {
    that._open = true;

    that._filterSource({
        value: ignoreCase ? word.toLowerCase() : word,
        operator: options.filter,
        field: options.dataTextField,
        ignoreCase: ignoreCase
    });
}

!length of 0 は true と評価され、フィルターを変更せずにポップアップを閉じます。問題を解決するために、_filterSource 行を条件の外に移動します。

于 2014-06-18T14:22:15.763 に答える