Mascara em Formulario Extra fields do Auth_user

97 views
Skip to first unread message

Luís Felipe Almeida

unread,
Jul 1, 2014, 9:01:09 AM7/1/14
to web2py-us...@googlegroups.com
Fala pessoal estou tentanto colocar mascaras no meu formulário  mas não consigo , ja tentei de tudo :\

meu codigo :

{{extend 'layout.html'}}
<div class='conteudo'>
                                 
<div class='registro1'>                         
  {{=form.custom.begin}}
  Nome : <div>{{=form.custom.widget.first_name}}</div>
  Sobrenome : <div>{{=form.custom.widget.last_name}}</div>
  Login : <div>{{=form.custom.widget.username}}</div>
  E-mail : <div>{{=form.custom.widget.email}}</div>
  Senha : <div>{{=form.custom.widget.password}}</div>
  Telefone : <div>{{=form.custom.widget.tel}}</div>
  Celular : <div>{{=form.custom.widget.cel}}</div>
  Rua : <div>{{=form.custom.widget.rua}}</div>
  Número : <div>{{=form.custom.widget.num}}</div>
</div>
<div class='registro2'>
  Bairro : <div>{{=form.custom.widget.bairro}}</div>
  Cidade : <div>{{=form.custom.widget.cidade}}</div>
  Estado: <div>{{=form.custom.widget.estado}}</div>
  Cep : <div>{{=form.custom.widget.cep}}</div>
  Sala : <div>{{=form.custom.widget.sala}}</div>
  Ramal : <div>{{=form.custom.widget.ramal}}</div>
  Coordenação : <div>{{=form.custom.widget.coord}}</div>
  Projeto : <div>{{=form.custom.widget.proj}}</div>
  
  {{=form.custom.submit}}
  {{=form.custom.end}}

        </div>
    </div>
        {{pass}}
 <script type="text/javascript">

  $(function(){

    $.mask.definitions['~']='[+-]';

    jQuery("#auth_user_tel").mask("(99) 9999-99-99");

    jQuery("#auth_user_cel").mask("(99) 9999-99-99");

 

  });

</script> 


abraços xD

Diogo Munaro

unread,
Jul 1, 2014, 9:12:33 AM7/1/14
to web2py-us...@googlegroups.com
Oi Luís, jQuery("#auth_user_tel") busca o elemento que tenha o id auth_user_tel. Esse elemento realmente existe?

Sugiro testar com um html simples

Em 1 de julho de 2014 10:01, Luís Felipe Almeida <lfa.lui...@gmail.com> escreveu:
jQuery("#auth_user_tel")


Carlos Costa

unread,
Jul 1, 2014, 9:50:53 AM7/1/14
to web2py-us...@googlegroups.com
Duas dicas que eu dou são:
1-Colcar suas chamadas do jquery dentro de jQuery(document).ready(function { ....});
Para ter certeza que vai executar o js só depois de já ter carregado a página completamente.
2-Dar uma olhada no console do browser, pode ter algum erro de importação de js ou de sintaxe.


--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-us...@googlegroups.com
Para se desinscrever, envie email a: web2py-users-br...@googlegroups.com
Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito no grupo quot;web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-br...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Att.

Carlos J. Costa
Cientista da Computação
Esp. Gestão em Telecom
<º))><

Maxwell Morais

unread,
Jul 1, 2014, 10:15:36 AM7/1/14
to web2py-us...@googlegroups.com
Há algum tempo atrás eu desenvolvi um plugin para Web2py que faz exatamente isto


Best Regards.

Maxwell Morais
Python Developer powered by Webnotes framework <3

Luís Felipe Almeida

unread,
Jul 1, 2014, 11:44:18 AM7/1/14
to web2py-us...@googlegroups.com
Vou testar aqui pessoal e posto o resultado , obrigado pela ajuda  !

Flávio Casacurta

unread,
Jul 3, 2014, 7:04:09 PM7/3/14
to web2py-us...@googlegroups.com

Ari Sobel

unread,
Jul 3, 2014, 7:34:36 PM7/3/14
to web2py googlegroups
Parabéns, Flavio

Desculpa estar perguntando antes de testar.
Uma vez que esta usando represent, ele funciona apenas na hora de exibir os dados, ou funciona também em campos input (de formulário)?

Grato!
Ari


--

Flávio Casacurta

unread,
Jul 4, 2014, 10:10:21 AM7/4/14
to web2py-us...@googlegroups.com
Ari

O represents serve somente para exibir os dados de acordo com a mascara escolhida não tem ingerência no formulário.
O validator aceita tanto dados editados ou não.

[]s

Ari Sobel

unread,
Jul 4, 2014, 11:15:41 AM7/4/14
to web2py-us...@googlegroups.com
Oi, Flavio
A minha questao era se, uma vez usando tuas funçoes, eu poderia inserir valores com virgula para separar decimais, ao invez de ponto, ou se isso serve apenas para a exibição. 

Caso vc ja tenha me respondido isso agora, desculpe, mas nao compreendi.

[]'s

Enviada do meu iPhone
--

Flávio Casacurta

unread,
Jul 5, 2014, 12:52:28 PM7/5/14
to web2py-us...@googlegroups.com
Ari

Se você define um:

      Field('SALARIO', 'decimal(5,2)')

Esta coluna no SGDB aceita de -99999.99 até 99999.99

Na definição:
tb_teste.SALARIO.requires  = [IS_NOT_EMPTY(), IS_MONEY(0,99999.99,dot=',',symbol='R$')]

o validator IS_MONEY retira o symbol 'R$', e chama o validator IS_DECIMAL que herda de IS_DECIMAL_IN_RANGE, passando:
minimum=0
maximum=99999.99
dot=',' #<<<< Aqui você está dizendo que o DECIMAL POINT IS COMMA (ponto decimal é virgula)
que por sua vez retira a edição e valida o range se positivo e < que 100000

>>> IS_MONEY(0,99999.99, dot=',', symbol='R$')('R$ 12.345,67')
(Decimal('12345.67'), None)

>>> IS_MONEY(0,99999.99, dot=',', symbol='R$')('R$ 12345,67')
(Decimal('12345.67'), None)

>>> IS_MONEY(0,99999.99, dot=',', symbol='R$')('12345,67')
(Decimal('12345.67'), None)

>>> IS_MONEY(0,99999.99, dot=',', symbol='R$')('1234567')
('1234567', 'enter a number between 0 and 100000')

Na definição:
tb_teste.SALARIO.represent = lambda value, row: MASK_MONEY(dot=',',symbol='R$')(value, 2)
o represents MASK_MONEY (que chama o represents MASK_DECIMAL e acrescenta o 'symbol')
Está recebendo 
dot=',' #<<<< Aqui você está dizendo também que o DECIMAL POINT IS COMMA (ponto decimal é virgula)
symbol='R$'
(value, 2) o valor da coluna e a quantidade de decimais

>>> MASK_MONEY(dot=',', symbol='R$')('12345.67', 2)
'R$ 12.345,67' 

Para testar execute o web2py em terminal interativo 
no prompt digite:
$ python web2py.py -S myapp -M

[]s
Flávio

 

Ari Sobel

unread,
Jul 5, 2014, 7:15:31 PM7/5/14
to web2py googlegroups
Boa, valeu, Flavio,

Em eu testando darei feedback!


--

Flávio Casacurta

unread,
Jul 6, 2014, 10:49:34 AM7/6/14
to web2py-us...@googlegroups.com
Corrigindo

Field('SALARIO', 'decimal(7,2)') - cinco inteiros e duas decimais
 

Ari Sobel

unread,
Jul 8, 2014, 12:54:40 PM7/8/14
to web2py googlegroups
Ola Flavio, boa tarde,

Consegui mexer um pouco, e apliquei no meu projeto. Parabéns!
A parte de "represent" ta funcionando 100%!

Agora a parte de apresentar no input co. virgula foi, ao invez de ponto,  o que nao cosnegui fazer.

O teu exemplo é:

INPUT(_type='text', _name='name', represent = lambda value, row: MASK_DECIMAL()(value, 0)

Ou seja, quando vc monta um Input usando o Helper INPUT().

Mas no meu caso tenhoi um SQLFORM.grid. Quero colocar nele. ASsim, como está abaixo, nao funciona.
form.element(_name='QTD_ENTR')['represent'] = lambda value, row: MASK_DECIMAL(dot=',')(value, 0)
Nem assim:
form.element(_name='QTD_ENTR')['_represent'] = lambda value, row: MASK_DECIMAL(dot=',')(value, 0)

Se puder me orientar, agradeço!

[]'s
Ari





Em 5 de julho de 2014 13:52, Flávio Casacurta <fla...@casacurta.com> escreveu:

--

Flávio Casacurta

unread,
Jul 9, 2014, 7:01:19 PM7/9/14
to web2py-us...@googlegroups.com
Ari

Eu não uso o custom form e não testei o INPUT com represent.

Acho que o represent não funciona no INPUT, se você quiser máscara no INPUT tem que usar jQuery, não é minha praia.

Tenta no DB ou no Controller:

 db.mytable.mycolumn.represent = lambda value, row: MASK_DECIMAL(dot=',')(value, 0)

[]s

Ari Sobel

unread,
Jul 9, 2014, 8:09:22 PM7/9/14
to web2py-us...@googlegroups.com
Flavio,

Beleza, vou testar aqui e dou feedback.

[]'s

Enviada do meu iPhone
Reply all
Reply to author
Forward
0 new messages