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 <massimo.dipie...@gmail.com
<mailto: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
<mailto: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