bishop, thanks for your answer, I think I wasn't clear with my question, I do understand that the "onChange" event is supposed to get fired when the user (or something in the background) changes the selected item in the FilteringSelect, so my problem was that when the user selects an item from the second FilteringSelect control its onchange event didn't get fired.
As you suggested I tryed a simpler example (with a hard coded Memory objects) and it did work, so I started to dig a little bit more and realized that the problem was with my memory object,
Aparently when you declare a Memory object you have to make sure that there is an ID filed in the array collection objects, like in the next example:
var stateStore = new Memory({
data: [
{name:"Alabama" id:"AL"},
{name:"Alaska", id:"AK"},
{name:"American Samoa", id:"AS"},
{name:"Arizona", id:"AZ"},
{name:"Arkansas", id:"AR"},
{name:"Armed Forces Europe", id:"AE"},
{name:"Armed Forces Pacific", id:"AP"},
{name:"Armed Forces the Americas", id:"AA"},
{name:"California", id:"CA"},
{name:"Colorado", id:"CO"},
{name:"Connecticut", id:"CT"},
{name:"Delaware", id:"DE"}
]
});
this.fieldDijit.set('store', stateStore);
When you don't explicitly tell it in the memory object declaration, it is asummed that there is a field called "id". In my case, the array that I assing to the memory object in the second filteringSelect didn't have a field called "id"
so I changed:
var fieldsStore = new Memory({
data: layerInfo.fields
});
for:
var fieldsStore = new Memory({
idProperty: "name", //added this
data: layerInfo.fields
});
and now the event gets fired when the selected item in the second filterin select changes.