One thing that I need to clear is.. somehow on my system (modified 1.2) I get no flicker/border change as you do on version 2.0 when marking the field invalid.
I'll investigate.

[LATER EDIT]
Has to do with your onValid, onInvalid and the CSS classes. One has border 1px, one border 0.
Not to be self-centric, but I like my way better: without the two onValid, on Invalid and CSS like the following:

On the other hand this.el should be the hidden field.
HiddenField from the ComboBox has a purpose.. because ComboBox has the displayed text-input with displayField, and can also have a hidden field which relates to valueField, but with your MultiSelect you only have one field, which is the hidden field.

One thing that I need to clear is.. somehow on my system (modified 1.2) I get no flicker/border change as you do on version 2.0 when marking the field invalid.
I'll investigate.

[LATER EDIT]
Has to do with your onValid, onInvalid and the CSS classes. One has border 1px, one border 0.
Not to be self-centric, but I like my way better: without the two onValid, on Invalid and CSS like the following:

Problem there is that the widget then has no border at all and it is my opinion that this looks crap That's why I implemented the dual valid/invalid class switch so at least there is always a 1px border.

One thing that I simply wasn't aware of.. the concept is like this: getValue would return what you see, getRawValue would return the real value.

Conclusion: Needs a little bit of re-coding.

I see your point however personally I am unsure of the usefulness of obtaining the display values. I would have thought the typical use of both the Multiselect and ItemSelector is database bound where the underlying value is important not the the display value. Perhaps I'm being narrow minded

I'm now quite busy with my real job and may be a few weeks before I could invest any real time in enhancing these widgets further. Therefore if you or anybody else would like to submit a working patch which addresses these or any other issues then please feel free.

Finally, thanks for your interest and input and helping to make things better