
On 15-05-2014 03:51, Hongliang Wang wrote:
There's some problem with this new function. And there is no need to replace the current validateNonEmpty() function. In the current validateNonEmpty() function, several checks are processed: Those checks don't make sense if the submit button is disabled while some of the required fields are still empty:
1) If user name field is empty, then put cursor in user name box If the user name field is empty, the user won't be able to click the log in button; no need to take them back to the user name field. Else if password field is empty, then put cursor in password box If the password field is empty, the user still won't be able to click the log in button; no need to take them back to the password field. Else put cursor on log in button
2) If some field is empty, a message will show to tell user the field is required. If some field is empty, the user won't be able to click the log in button; no need to display a message on the screen.
Again, I'm trying to make the Kimchi forms consistent. Some forms leave the submit button enabled all the time and when the user clicks it, the entire form is validated; other forms leave the submit button disabled and enable it only when the required fields are filled; some forms highlight the required fields when they're empty; some forms remove automatically the text entered by the user if it thinks the data is invalid (!!); some forms don't even have a submit button visible all the time... I'd like to see a single behavior regarding form validation across Kimchi. We can use a combination of those features I mentioned above (most of them are nice), but we must decide and use the same approach everywhere. Which is not the case right now. I chose one of them to create this patch (i.e. keeping the submit button disabled until all required fields are filled) so we can start discussing about consistency, but I agree we should decide something else better. As long as it's applied everywhere and the user always knows what to expect when browsing the application.