Bug report
ComboBox select() does not select after version 2021.3.914 when using a serverFiltering
Reproduction of the problem
Open the Dojo - https://dojo.telerik.com/owUfOLef/4
Expected/desired behavior
The first item shall be selected initially.
Environment
Kendo UI version: 2021.3.914 or newer
Browser: [all ]
When the Chinese IME typing is used and the minLength is set in the ComboBox the items can not be properly selected using the keyboard.
When minLength is defined the item in the ComboBox is not selected, the dataitem is not accessible in the change event handler (screencast). The item is selected as expected if the value is copy pasted (包).
The items should be selected when using the Chinese IME typing after filtering the data and selecting an item through the keyboard.
To say that you have "Cascading ComboBox" functionality is misleading. You do have "Cascading ListBox" functionality - whereas if a value is picked in the parent listbox, the child will populate with a filtered, dependent list. Changing the parent changes the dependent items in the child list box.
However, the difference with ComboBoxes is that the user can also type a value in, if it doesn't appear in the bound dataset. While this does work as expected for the child ComboBox in the cascading example - it DOES NOT work for the parent. If you type a value into the parent, the child ComboBox remains disabled. You should be able to at least type into the child box.
We have a simple need for a Manufacturer / Model selection in two cascading ComboBoxes. If the manufacturer does not exist, we want to be able to allow the user to type it in. Since it's a new manufacturer - there are no associated models in the bound dataset, yet. The dependent child ComboBox should at least be enabled so the user can enter the new model.
This behavior can be experienced in your online example. If you pick a value in the parent, the child refreshes and rebinds accordingly. But if you type in the parent - the child remains disabled. This is a bug, if you intend on maintaining that you have "Cascading ComboBox" functionality.
I was given a "workaround" by your support team - but there are still lingering effects (especially on reloading the form with existing data) that would not be an issue if the cascading combobox implementation was completed properly.
When a ComboBox is disabled, if the user tries to select the value by double click, additional new line is added to the selection
In the Demos a new line is added before the value of the ComboBox. When the same Demo is opened in a Dojo, a part from the text above the ComboBox is also highlighted. (screencast)
Only the text in ComboBox should be selected even if the widget is disabled.
The element holding the down arrow icon could be hidden when the ComboBox is disabled. - Dojo
typedText: function () {
var that = this,
caret = kendo.caret(that.input),
text = that.text();
return caret ? text.substring(0, caret[0]) : text;
},
When the virtualization is enabled, mapValueTo option is set to dataItem and initial value is set in the ComboBox, the cursor is not set at the end of the item.
The loaded value is 'Hungry Owl All-Night Grocers' but the cursor is not set at the end of the text, but at the fifth position in the item.
The cursor should be set at the end of the text.
Hi Team,
I would like to request to include in the built-in API the functionality to hide the FixedGroupHeaderTemplate. I like the appearance of the UI for ASP.NET AJAX RadComboBox when it is grouping, and it would be nice if the Kendo UI ComboBox could be configured to have the same look without manipulating CSS and adding extra code to the DataBound event.
Thank you!
Regression introduced in R1 2020 SP1. Related to #5400
Dojo example.
2 requests are sent to the "read" end point.
1 request is sent to the "read" end point. Note that if the input is cleared with the "clear" button, it works as expected and only 1 request is sent.
Pressing the Capslock button when the ComboBox is focused triggers the opening of its dropdown list. The dropdown list opens one time when the Capslock is pressed.
The dropdown list of the ComboBox opens when the Capslock is pressed
The dropdown list of the ComboBox should not open when the Campslock button is pressed
ComboBox with HighlightFirst set to false causes the widget to lose its value when navigating to it.
On the second tab navigation to the component, its value is lost and is now equal to the text.
The value of the ComboBox should be preserved.
Dojo example.
The ComboBox's value is cleared and the placeholder is displayed.
The Pickers had the same behavior before this issue was closed: #4767
Scenario: 2.
The initial value remains.
When making a selection, navigating to another page, and going back to the initial page, which is restored from the Back-Forward Cache in Firefox, the selection of the ComboBox is not displayed.
The selections made are not displayed when the page is restored from the Back-Forward Cache
The selections made should be displayed when the page is restored from the Back-Forward Cache
If you bind a ComboBox widget to a datasource containing arbitrary objects that contain a "data" field, the dropdown items will be "undefined" instead of the value of the dataTextField. I'm guessing the data field is messing up the template variable.
var formData = [
{
key: '1',
description: 'CT Safety',
formTypeCd: 'S',
data: {foo: '', bar: ''}
},
{
key: '2',
description: 'MR Safety',
formTypeCd: 'S',
data: {foo: '', bar: ''}
},
{
key: '3',
description: 'Medicare > 60 Billing',
formTypeCd: 'I',
data: {}
}
];
$("#forms-combobox").kendoComboBox({
dataTextField: "description",
dataValueField: "key",
dataSource: formData
});
While floating label is available on textbox and maskedtextbox, no feature is available on the combobox, unless you are using Kendo for Angular or Vue. Can we get one for jQuery?
When using jQuery v3.5.1 and using the arrows to navigate through items in virtualized ComboBox a previous item is selected when valueMapper function is called. The behavior is not observed when using jQuery v1.12.3
When the valueMapper function is called the selection moves to the previous item in the list
Selection should not change when the valueMapper function is called.
Working example with jQuery v1.12.3
I'm using the default theme: "@progress/kendo-theme-default": "4.18.2" with some custom overrides.
The generated CSS has the following incorrect rule (because of the unitless zero, see https://www.w3.org/TR/css3-values/#calc-type-checking ):
.k-combobox .k-dropdown-wrap .k-clear-value {
calc( calc( 1.2em + 8px) + 0 + 6px)
}
This rules comes from the following scss:
$picker-icon-offset: calc( #{$picker-select-calc-size} + #{$picker-select-border-width} + #{$input-icon-offset}) !default;
The unitless zero comes from this value:
$picker-select-border-width: 0 !default;
As a result, the "X" in a combobox overlaps the value.
Currently, the "suggest" option of the ComboBox is designed to work only in a combination with 'filter:"startswith"'. If you open this Dojo and enter "T' in the ComboBox, then focus the ComboBox out then the "Two" ComboBox item will be selected.
If in the above demo, we change the filter configuration to "contains", when we enter "T" and focus the ComboBox out, the behavior will be the same, and "Two" will be selected. If we instead of "T" enter "w" and focus the ComboBox out then "two" won't be selected. To make the "Two" item selected, with "filter:'contains'" configuration, we can use the below workaround.
No matter the below workaround, it will be very useful if the below logic or similar one can be built-in in the ComboBox component.
<input id="combobox" />
<script>
var fruit = [
{code: 1, name: "One" },
{code: 2, name: "Two"},
{code: 3, name: "Three"}
];
var ds = new kendo.data.DataSource({
data: fruit
});
$("#combobox").kendoComboBox({
dataTextField: "name",
dataValueField: "code",
suggest: true,
filter: "contains",
dataSource: ds,
change: function(e) {
var comboBox = $("#combobox").data("kendoComboBox");
var dataItem = comboBox.dataItem();
if (dataItem === undefined) {
//special code for mobile browsers to auto select the first entry
if (comboBox.text() != "") {
ds.filter({ field: "name", operator:"contains", value: comboBox.text() });
if (ds.view().length > 0) {
comboBox.select(function(dataItem) {
return dataItem.name === ds.view()[0].name;
});
}
}
}
}
});
</script>
<input id="fred">
Scenario 1 Cascade with no pre-selected values.
Dojo example: https://dojo.telerik.com/uguXisaY/4
Result:
In R1 2019 the change event fires in disorder (Orders, Categories and Products)
In R3 2019 the change event fires for Categories and Products
In R3 2019 SP1 the change event fires only for Categories
Scenario 2 Cascade with pre-selected values
Dojo example: https://dojo.telerik.com/uguXisaY/10
Result:
In R1 2019 the change event fires for all ComboBoxes but twice for Orders
In R3 2019 the change event fires for all ComboBoxes
In R3 2019 SP1 the change event fires for all ComboBoxes but twice for Products
Scenario 3 Cascade in Grid with no pre-selected items
Dojo example: https://dojo.telerik.com/OpOkataY/9
Result:
In R1 2019 the change event fires for all ComboBoxes in inverse order: Year, Model, Brand
In R3 2019 the change event fires only Model and Brand in this order.
In R3 2019 SP1 the change event fires only Model and Brand in this order.
Scenario 4 Cascade in Grid with pre-selected items
Dojo example: https://dojo.telerik.com/OpOkataY/10
Result:
In R1 2019 the change event fires for all ComboBoxes in inverse order: Year, Model, Brand, but fires twice for Year
In R3 2019 the change event fires for all ComboBoxes in inverse order: Year, Model, Brand
In R3 2019 SP1 the change event for all ComboBoxes in inverse order: Year, Model, Brand, but fires twice for Year