- From: Christian Schmidt <whatwg.org@chsc.dk>
- Date: Sun, 6 Jun 2004 19:02:16 +0200 (CEST)
I work as a web programmer. I have read the Web Forms 2.0 Working Draft of 3 June 2004 proposition with great interest. A few comments and suggestions: - I am not sure, when setValidity() is expected to be set, but it should probably be done in onchange or oninput. At the same time, an appropriate error message should be generated and stored somewhere, so that it can be displayed in oninvalid. How about adding an onvalidate event, so that authors can encapsulate validation and error message generation in one function? - And how about supplying a way to display a user defined error message in the same way as the built-in error messages are? This could be done by adding an errorMessage property to the event object whose value initially is the standard error message for the current ERROR_* constant(s). The errorMessage property could then be altered in the above mentioned onvalidate event handler, either if the input fails some user-defined validation, or if the author wishes to create a more detailed error message than the standard error message (it is hard for a computer to explain a user, why their input doesn't match a particular regular expressions). If validity is 0 when errorMessage is set, perhaps validity should automatically be set to ERROR_USER_DEFINED. This example illustrates the above suggestions - it makes a user-defined validation of the input, changes the standard error message in case the pattern is not matched, and if the input passes the user-defined validation and matches the pattern, it proceeds to the UAs own validation, including the maxlength-check: <label>Choose a password <input type="password" pattern=".{3,}" name="password" maxlength="12" onvalidate="verifyPassword(event)"> </label> <script type="text/javascript"> function verifyPassword() { if (event.target.value == event.target.form.elements.username.value) { event.errorMessage = 'Your password may not be the same as your username'; } else if (event.target.validity & event.target.form.ERROR_PATTERN_MISMATCH) { event.errorMessage = 'Your password should be at least 3 characters'; } } </script> - The table in section B specified that the pattern attribute applies to <input type="pattern">, but password is not among the types mentioned in the first paragraph of section 2.9. - It may be relevant to specify how to deal with IDN domain names in <input type="email"> and <input type="url"> - should they be allowed, converted in the client or sent to the server in their original character set? - With respect to <input type="email"> and <input type="url">, it may be relevant to explicitly specify, whether any syntactically valid email address/URI should be allowed, or if the client may/should also try to determine whether the email/URI is live and working, e.g. do DNS lookups. In practice, a lot of users seem to have trouble remembering even their own email address, so sometimes it is useful with as many sanity checks as possible. Christian
Received on Sunday, 6 June 2004 10:02:16 UTC