My main main problem is localization. since in portuguese decimal separator
is , and not a . I just have to disable it.



2011/3/22 Massimo Di Pierro <massimo.dipie...@gmail.com>

> I do not have a strong opinion about this one. What do other people
> think?
>
> On Mar 20, 1:15 pm, Kevin Ivarsen <kivar...@gmail.com> wrote:
> > Hi all,
> >
> > I find the default javascript validators for integer, double, and decimal
> > SQLFORM fields to be a little annoying. Consider the following surprising
> > behaviors:
> >
> > - You can't navigate within the textbox using the keyboard. Pressing
> left,
> > right, home, or end all result in the cursor jumping back to the end of
> the
> > input
> > - You can't select text with ctrl-a or ctrl-shift-left/right
> > - If the user accidentally flubs the input (e.g. 2.u1828 instead of
> > 2.71828), the offending character is silently removed and an incorrect
> value
> > may be submitted without warning.
> >
> > I think a better alternative is to flag to the user that the input is
> wrong
> > rather than trying to correct it for them -- e.g. by changing the input
> > background color. The following is a sample implementation that does
> this:
> >
> > -- in file web2py_ajax.html, replace the lines
> > "jQuery('input.integer').live..." and
> > "jQuery('input.double,input.decimal').live..." with:
> >
> >   jQuery('input.integer').live('keydown keyup', function(){
> >      if (! this.value.match(/^[+-]?[0-9]*$/)) {
> >           jQuery(this).addClass("w2p_inputerror");
> >      }
> >      else {
> >           jQuery(this).removeClass("w2p_inputerror");
> >      }
> >   });
> >
> >   jQuery('input.double,input.decimal').live('keydown keyup', function(){
> >      if (! this.value.match(/^[+-]?[0-9]*\.?[0-9]*$/)) {
> >           jQuery(this).addClass("w2p_inputerror");
> >      }
> >      else {
> >           jQuery(this).removeClass("w2p_inputerror");
> >      }
> >   });
> >
> > -- in file base.css, add the following style:
> >
> >      input.w2p_inputerror {
> >           background: #FF8;
> >      }
> >
> > A few notes:
> >
> > 1. The regexes used to validate numbers are "intentionally" naive. For
> > example. the double validator accepts "+", "-", "+.", and "-.", which are
> of
> > couse not valid numbers. However, suppose the user enters a value between
> -1
> > and 0. They are likely to start by typing "-.", and I don't think it's
> > polite to flash the textbox at them when they are about to enter a valid
> > number.
> >
> > 2. The double validator does not permit scientific notation - e.g. "1e6"
> for
> > 1 million. Such notation is probably of limited use for most people, the
> old
> > validator rejected such values anyway, and I didn't feel like
> implementing
> > it :-)
> >
> > 3. The jquery events listen to both keyup and keydown. keyup is necessary
> > because the input.value has not yet been updated when keydown is fired.
> But
> > listening to keydown is useful if the user holds down the backspace key -
> > the background color will be reset as soon as the last offending
> character
> > has been deleted, rather than waiting for the user to release the
> backspace
> > key.
> >
> > 4. I used the class name "w2p_inputerror" in an attept to namespace this
> > somewhat web2py-specific class.
> >
> > I hope some people find this to be useful. If other people have been
> annoyed
> > by the current default, perhaps we could open discussion to make this the
> > new default in web2py?
> >
> > Cheers,
> > Kevin
>



-- 
Atenciosamente


Alexandre Andrade
Hipercenter.com Classificados Gratuitos

Reply via email to