actually the IS_INT_IN_RANGE(...) has a separator attribute. The only
missing thing is a mechanism to tell JS about it. As a simple solution
we could accept both (. and ,) and let the validator give the proper
localized interpretation.



On Mar 23, 12:24 am, Kenneth Lundström <[email protected]>
wrote:
> It's the same here in Finland and as the number keyboard has , it the
> key to use.
>
> Kenneth
>
>
>
>
>
>
>
> > 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 <[email protected]
> > <mailto:[email protected]>>
>
> >     I do not have a strong opinion about this one. What do other people
> >     think?
>
> >     On Mar 20, 1:15 pm, Kevin Ivarsen <[email protected]
> >     <mailto:[email protected]>> 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