W3C home > Mailing lists > Public > whatwg@whatwg.org > July 2011

[whatwg] Form element invalid message

From: timeless <timeless@gmail.com>
Date: Thu, 28 Jul 2011 09:48:39 -0400
Message-ID: <CAACrNNf42uenUSruuOy7nZu9pOtFWBjBPOO+LA9hXo-CE+LWwQ@mail.gmail.com>
Your 13 example is a good argument against splitting between markup
and script. If the minimum value is updated in the html but not the
js, you get confused users. - I've seen the results of letting logic
get out of sync from error reporting, it isn't pretty.

On 7/28/11, Scott Gonz?lez <scott.gonzalez at gmail.com> wrote:
> 2011/7/28 Jukka K. Korpela <jkorpela at cs.tut.fi>
>
>> 28.07.2011 12:16, Scott Gonz?lez wrote:
>>
>>  I agree that it's extremely important to be able to define error
>>> messages per error condition, but it's not necessary to code all data
>>> checking in JavaScript to achieve that today.
>>>
>>
>> It's not, but if you cannot set the error messages in HTML, what's the
>> point? Doing everything in JavaScript is simpler, especially because you
>> should anyway duplicate the checks - for example, using JavaScript to get
>> the pattern attribute value and run the check in it, to deal with the many
>> situations where the user has JavaScript enabled and the browser does not
>> support the pattern attribute (but still includes its value into the DOM).
>
>
> Doing everything in JavaScript is easier for developers, but an easily
> configurable JavaScript plugin is easier for a very large percentage of web
> content authors. A first pass might look something like:
>
> $( "#age" ).validation({
>     required: "You must enter an email address.",
>     min: "You must be at least 13 to post nonsense on the web."
> });
>
> As for duplicating the checks anyway, I completely agree and I personally
> just use JavaScript anyway. As one of the development leads for jQuery UI, I
> can tell you that I have mixed feelings about all of the new features. As a
> developer, I want to leverage as much of the semantics and information as I
> can, but I also want complete control over the results of providing those
> semantics and information. This generally means we want the attributes
> without any of their actual functionality, which is a shame.
>
>
>>  You can simply code the
>>> error message by letting the browser do the validation, then using the
>>> validity flags to set your own message with setCustomValidity.
>>>
>>
>> Pardon? You would let the browser run the checks specified in HTML, then
>> check the flags and turn an error to a custom error for which you can set
>> the error message. This sounds like more complicated than doing it all in
>> JavaScript, where you can directly do whatever error processing needs to
>> be
>> done. To make the HTML way a feasible option, the spec should define an
>> easy
>> way to set the error message(s) directly.
>
>
> This is purely a suggestion of how to implement what I've described above.
>
> There are essentially three choices (this applies to most new markup-driven
> features):
> 1) Provide the information in the appropriate attributes and let the browser
> do its thing.
> 2) Provide the information in a script and do everything via scripting.
> 3) Provide the information in the appropriate attributes, but handle them
> via scripting.
>
> #1 will never be as flexible as #3. #2 is a decent compromise and can be
> made more flexible by allowing additional configuration via scripts. I think
> the spec needs to make #1 as good as it can, but also do what it can to
> encourage #2 over #3 where possible/reasonable.
>
>
>>   I have a feeling you'll still end up with a few
>>> shortcomings because you won't have control over the order in which the
>>> checks are done, so you won't be able to specify which error message to
>>> show when there are multiple errors.
>>>
>>
>> Yes that would be a problem too, but a tolerable one. Besides, I guess the
>> spec could say that the checks are carried out in the order in which the
>> attributes are specified (though this admittedly deviates from the
>> DOM-centric approach), and it could have yet another Boolean attribute
>> that
>> specifies whether all checks are carried out or the first failure aborts
>> the
>> processing. But more realistically, and more logically DOM-wise, the spec
>> could simply define the order (e.g., required, maxlength, pattern) and
>> specify that when a check fails, an error message is issued and further
>> processing is suppressed.
>>
>>
>> --
>> Yucca,
>> http://www.cs.tut.fi/~**jkorpela/<http://www.cs.tut.fi/%7Ejkorpela/>
>>
>

-- 
Sent from my mobile device
Received on Thursday, 28 July 2011 06:48:39 UTC

This archive was generated by hypermail 2.4.0 : Wednesday, 22 January 2020 16:59:35 UTC