unfiled → selector
undecided → low
The user's input changes the value property of the element but not the value attribute.
If the element has
value="abc" and you type the characters
def to replace them, the attribute is
value="abc" but the
Sizzle (the selector engine for jQuery) first tries to use the standard querySelectorAll browser method. The standard says that the selector should only consider the *attribute* value and not the dynamic property value. So in those cases you would be matching against
"abc" and not
However, all three of those examples use non-standard selector extensions (
So with that in mind it's not a good idea to expect selectors to take into account the dynamic values that a user may have just typed.
All that said, I am not sure why the first example behaves the way it does. Seems like it should work the way the last example does.
#main input:text[value=''] selects 5 elements but
#main input:text[value='']:first selects nothing in IE! So I do think something is broken here.