//the following is working
var source = [{ "key": 1, "text": "Purple" }, { "key": 2, "text": "Red" }, { "key": 3, "text": "Blue" }];
var t1 = $('<div/>').appendTo('body');
t1.jqxDropDownList({ source: source, valueMember: 'key', displayMember: 'text' });
if (typeof t1.jqxDropDownList('getItemByValue', 1) == 'undefined') {
alert('bug in jqWidget'); //does not happen
}
//while this is NOT working (the only change is that displayMember=='value' instead of 'text')
var source = [{ "key": 1, "value": "Purple" }, { "key": 2, "value": "Red" }, { "key": 3, "value": "Blue" }];
var t2 = $('<div/>').appendTo('body');
t2.jqxDropDownList({ source: source, valueMember: 'key', displayMember: 'value' });
if (typeof t2.jqxDropDownList('getItemByValue', 1) == 'undefined') {
alert('bug in jqWidget'); //happen
}
there is an “easy but ugly workaround” that I’d like to remove as soon as possible
:
source = source.map(function(e) { return { key: e.key, text: e.value } });