On 11/4/10 7:57 PM, Aryeh Gregor wrote:
On Tue, Nov 2, 2010 at 9:58 PM, Boris Zbarsky<[email protected]>  wrote:
This is difficult to do in practice.  Consider:

  <input type="number" min="20" max="50" value="20">

The user now wishes to input 30 instead of the default value of 20. What
steps need to be taken to do this, and how does the input control react to
those steps?

The user backspaces twice

Hold. You (and the Google folks) were talking about always clamping stuff as the user types, so the value is never invalid. So the user hits backspace once, the value is 2, that's out of range, gets clamped to 20.

IMO, unlike the Firefox
preferences control behavior I mentioned, it shouldn't prevent you
from typing anything, it should clamp onblur.

That's not what the Google folks wanted, nor what I read your previous mail as saying....

Until blur, it should
only expose the changed value to JS (.value, firing input events,
etc.) when the current value is valid -- otherwise it should remain at
the old value.

That might confuse scripts (and in particular x.value = x.value would actually change the visible value!).

1) Hit backspace, user sees "2", .value is "20", no input event fired

Not firing the input event would likely break scripts too...

Trying to change the value that the user sees as they type it isn't a
good idea in general, I think.

Yes, I agree.  Hence my example!

Presenting inconsistent state to script (see the value = value example above) is not a good idea either, though.

-Boris

Reply via email to