JQuery - masked input -

Boa tarde galera,

Estamos usando JQuery com masked input para validar os campos de cnpj,
telefone, data e muitos outros, só que parece que o pessoal não gostou muito do fato
do JQuery apagar o que foi preenchido no campo se não se preenche até o final.
Ou seja, o usuário está digitando o cpf dele, se ele sai do campo sem terminar de preencher
até o ultimo caracter, o valor que ele já digitou é apagado.
Alguém por aqui já viveu algum problema parecido … gostaria de saber a melhor maneira de impedir
que a JQuery apague os campos incompletos.

$.noConflict( )
jQuery(function($){
$("#idCampoData").mask("99/99/9999",{placeholder:" "});
}

Muito Obrigado desde já,

Verdade isso é interessante não tinha reparado nisso.

ferro e agora :smiley:

Ah cara… eu acho o JQuery mó novela… só que na empresa aqui usamos esse mesmo tipo de validação… seria bom saber um outro meio rapido e eficiente para a validação dos campos… se alguém puder ajudar eu tb gostaria de saber como… valew

Cara pelo que entendi. Voce precisa controlar esses campos por session e nao persistindo direto. O methodo que voce esta usando para validar os campos estao em session ou em request ?

espero ter ajudado

E aí Manú.

Cara… tudo q eu posso fazer é te dar como sugestão esse livro aqui: jQuery in Action.

Até quinta!

Abração,
Beto.

Entao,
também acho que seria muito bom encontrar algo tão eficiente, rápido e que ainda seja cross-browser.
Mudar o comportamento dessas funções de JQuery não está sendo tarefa fácil.
Mas acredito ainda que haja uma maneira de fazê-lo.

É verdade. Procurei em alguns lugares a solução mas até agora nada.

Abraços!

Simples, qdo o cara submeter a pagina manda uma msg de erro dizendo q o valor do campo é invalido ou faz um método na saida do campo em JS (nao se sei é o on blur) e verifica se ele digitou tudo…
O JQuery nao tem q garantir q ele digite completo, apenas tem q garantir a mascara :smiley:

[quote]Simples, qdo o cara submeter a pagina manda uma msg de erro dizendo q o valor do campo é invalido ou faz um método na saida do campo em JS (nao se sei é o on blur) e verifica se ele digitou tudo…
O JQuery nao tem q garantir q ele digite completo, apenas tem q garantir a mascara[/quote]

Bregaida,
Valeu pela solução cara,
mas não é tão simples assim aqui, queremos ter campos que impossibilitem que o
usuário de digitar algo inválido sabe. Tem que funcionar como uma máscara mesmo.
Isso é a exigência, o que preciso agora é uma forma de modificar essa função do JQuery,
ou usar uma função semelhante que apenas não apague o que o usuário digitou quando ele passar para outro
campo e deixar o anterior incompleto, só isso. Estou pegando esse material teórico de JQuery para dar uma estudada,
se encontrar algo vou postar aqui.

Muito obrigado pela força galera

[quote=esantana][quote]Simples, qdo o cara submeter a pagina manda uma msg de erro dizendo q o valor do campo é invalido ou faz um método na saida do campo em JS (nao se sei é o on blur) e verifica se ele digitou tudo…
O JQuery nao tem q garantir q ele digite completo, apenas tem q garantir a mascara[/quote]

Bregaida,
Valeu pela solução cara,
mas não é tão simples assim aqui, queremos ter campos que impossibilitem que o
usuário de digitar algo inválido sabe. Tem que funcionar como uma máscara mesmo.
Isso é a exigência, o que preciso agora é uma forma de modificar essa função do JQuery,
ou usar uma função semelhante que apenas não apague o que o usuário digitou quando ele passar para outro
campo e deixar o anterior incompleto, só isso. Estou pegando esse material teórico de JQuery para dar uma estudada,
se encontrar algo vou postar aqui.

Muito obrigado pela força galera
[/quote]

N precisa disparar msg faz uma validação qdo ele perder o foco do campo em JS e bota o foco lá de novo… cria um UTIL.js e bota esse metodo lá.
JQuery q faz a mascara n tem q garantir q o usuário vá realmente preencher tudo.
Lembre-se de coisas do tipo mascara de valor, se um valor nao tem milhar o JQuery n iria deixar o cara sair do campo?
=)
000.000,00
Só pensar assim
Se vc quer obrigar cria um metodo de validação em JS e bota pra rodar qdo perder o foco, caso o cara n digite só botar o foco no campo de novo. :smiley:

Pensei nisso, mas pelo que entendi não querem ficar presos no campo, querem poder sair dele e
deixar ele pela metade …

Estou encontrando alguns trechos de código nas libs do masked input que acredito que conseguirei mudar
esse comportamento.

Valeu pela colaboração ai Bregaida

[quote=esantana][quote]
Se vc quer obrigar cria um metodo de validação em JS e bota pra rodar qdo perder o foco, caso o cara n digite só botar o foco no campo de novo
[/quote]

Pensei nisso, mas pelo que entendi não querem ficar presos no campo, querem poder sair dele e
deixar ele pela metade …

Estou encontrando alguns trechos de código nas libs do masked input que acredito que conseguirei mudar
esse comportamento.

Valeu pela colaboração ai Bregaida

[/quote]

Hum… entendi errado então, mas por default vc pode criar um método q utiliza essa mascara e no teu método vc nao apaga… dá uma olhada lá nos 2 links q te passei no blog q sei q vão te ajudar pq eu tive q enfrentar alguns problemas assim ai :smiley:

Cara, é só tu usar o o caracter “?” na tua máscara pra indicar até onde o usuário tem que digitar necessariamente e não apagar se perder o foco.

Exemplo, quero que o usuário digite até o mês numa máscara de data e não perca o valor caso mude o foco:

mascara: 99/99/?9999
Se o usuário digitar “12/1” ele apaga tudo, agora se ele for até “12/10” ele não apaga.

Sendo assim, se tu quiser permitir que o cara vá até qualquer lugar da máscara digitando e não perca o valor se mudar o foco, tu faz assim:

?99/99/9999

Assim, ele pode ir a qualquer posição da data sem perder o que digitou caso mude o foco. O “?” é como uma âncora na máscara.

[quote=giulianocosta]Cara, é só tu usar o o caracter “?” na tua máscara pra indicar até onde o usuário tem que digitar necessariamente e não apagar se perder o foco.

Exemplo, quero que o usuário digite até o mês numa máscara de data e não perca o valor caso mude o foco:

mascara: 99/99/?9999
Se o usuário digitar “12/1” ele apaga tudo, agora se ele for até “12/10” ele não apaga.

Sendo assim, se tu quiser permitir que o cara vá até qualquer lugar da máscara digitando e não perca o valor se mudar o foco, tu faz assim:

?99/99/9999

Assim, ele pode ir a qualquer posição da data sem perder o que digitou caso mude o foco. O “?” é como uma âncora na máscara.[/quote]

boa cara!!!
era o que precisava!

Me ajudou demais esse tópico! Obrigado!