[Logo] Mentawai Forum - Mentawai Web Framework
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 
Bug no inputMoney?!  XML
Forum Index -> Comentários Gerais Go to Page: 1, 2 Next 
Author Message
velo


[Avatar]

Joined: 16/02/2006 13:33:54
Messages: 1197
Location: Jaraguá do Sul - SC
Offline

Code:
<mtw:inputMoney name="minValue" decimals="3" size="15" maxlength="14"/>


Bem, olha o q eu digito e o resultado:
Dig ==> Resultado
1 ==> 0,001
2 ==> 0,012
3 ==> 0,123
4 ==> 1,234
5 ==> 12,345
6 ==> 123,456
7 ==> 1.234,567
8 ==> 12.345,678
9 ==> 123.456,789
0 ==> 1.234.567,890
1 ==> 12.345.678,901
2 ==> 123.456.789,01

Cade os meus 3 decimais? Daih eu choro, hehehehehe

Outra coisa, nem ao clicar no Back Space, nem no Del reformata o campo. Não seria interessante?

VELO


_____________________________________
Mentawai Developer
"When the only tool you have is a hammer, everything looks like a nail"
http://en.wikipedia.org/wiki/Golden_hammer
[Email] [MSN]
Lobo


[Avatar]

Joined: 23/01/2006 02:17:14
Messages: 841
Location: Fortaleza-CE
Offline

É bug no javaScript no IE funciona :/

Atenciosamente,
Hélio Frota

Helio Frota
10+ Java Programmer
heliofrota.com

Member
Mentawai Developer
thiagoalgo



Joined: 12/01/2007 13:47:35
Messages: 138
Offline

Este é um problema típico de diferença dos browsers. Na minha opinião, o tratamento dessas excessões de diferenças de implentações de javascript são papel do framework. Tudo que for trabalho repetitivo, e neste caso acho que é, deve ficar a cargo do framework, quando possível. Acho que nesse caso concordo quando o Velo diz que pode ser um bug.

Lobo


[Avatar]

Joined: 23/01/2006 02:17:14
Messages: 841
Location: Fortaleza-CE
Offline

Na verdade mesmo não é um "bug" o problema é de adaptação para os browsers, o javascript é este :

Code:
 inputMoneyAddEvent = function(o, e, f, s){
     var r = o[r = "_" + (e = "on" + e)] = o[r] || (o[e] ? [[o[e], o]] : []), a, c, d;
     r[r.length] = [f, s || o], o[e] = function(e){
         try{
             (e = e || event).preventDefault || (e.preventDefault = function(){e.returnValue = false;});
             e.stopPropagation || (e.stopPropagation = function(){e.cancelBubble = true;});
             e.target || (e.target = e.srcElement || null);
             e.key = (e.which + 1 || e.keyCode + 1) - 1 || 0;
         }catch(f){}
         for(d = 1, f = r.length; f; r[--f] && (a = r[f][0], o = r[f][1], a.call ? c = a.call(o, e) : (o._ = a, c = o._(e), o._ = null), d &= c !== false));
         return e = null, !!d;
     }
 };
 
 inputMoneyMask = function(o, n, dig, dec){
     o.c = !isNaN(n) ? Math.abs(n) : 2;
     o.dec = dec || ",", o.dig = dig || ".";
     inputMoneyAddEvent(o, "keypress", function(e){
         if(e.key > 47 && e.key < 58){
             var o, s = ((o = this).value.replace(/^0+/g, "") + String.fromCharCode(e.key)).replace(/\D/g, ""), l, n;
             (l = s.length) <= (n = o.c) && (s = new Array(n - l + 2).join("0") + s);
             for(var i = (l = (s = s.split("")).length) - n; (i -= 3) > 0; s[i - 1] += o.dig);
             n && n < l && (s[l - ++n] += o.dec);
             o.value = s.join("");
         }
         e.key > 30 && e.preventDefault();
     });
 }
 


Já isolei o problema milhares de vezes mas não consegui resultados sempre dá problema em seja no FF ou IE.

Se alguém que manja de javaScript quizer dar uma ajuda será bem vinda.

Atenciosamente,
Hélio Frota

Helio Frota
10+ Java Programmer
heliofrota.com

Member
Mentawai Developer
IceW0lf


[Avatar]

Joined: 16/03/2006 08:33:38
Messages: 1546
Location: Brasília
Offline

Deixa eu colocar minha colher nessa sopa ai....

Bom antes do menta ter a tal tag eu usava o código abaixo para fazer a máscara e funcionava tanto no ie quanto no fire. Segue o codigo para análise de vcs ai.

Code:
//FORMATA MOEDA
 //fmtMoney(number: Number, [floatPoint: Integer = 2], [decimalSep: String = ","], [thousandsSep: String = "."]): String 
 //Retorna o número no formato monetário. numbernúmero (ou string no formato "xxx.yy") que será convertido 
 //floatPointnúmero de casas decimais decimalSepstring que será usada como separador decimal thousandsSepstring que será usada como separador de milhar 
 fmtMoney = function(n, c, d, t){
 	var m = (c = Math.abs(c) + 1 ? c : 2, d = d || ",", t = t || ".",
 	/(\d+)(?:(\.\d+)|)/.exec(n + "")), x = m[1].length > 3 ? m[1].length % 3 : 0;
 	return (x ? m[1].substr(0, x) + t : "") + m[1].substr(x).replace(/(\d{3})(?=\d)/g,
 	"$1" + t) + (c ? d + (+m[2] || 0).toFixed(c).substr(2) : "");
 };


Como vcs podem ver é bem menor que o atual do menta.

Leiber Wallace
Voixy ::: Soluções em Telecomunicações
Lobo


[Avatar]

Joined: 23/01/2006 02:17:14
Messages: 841
Location: Fortaleza-CE
Offline

Fala ICE !

Cara eu vô testar aqui, dando certo eu falo com a equipe e te dou um feedback ok .

Atenciosamente,
Hélio Frota

Helio Frota
10+ Java Programmer
heliofrota.com

Member
Mentawai Developer
thiagoalgo



Joined: 12/01/2007 13:47:35
Messages: 138
Offline

Lobo, só lembro que não fiz uma crítica. Até pq como eu disse esse é um problema típico de incompatibilidade e eu também nunca consegui resolver. A intenção do meu post era de ser um pouco mais "filosófico", buscando encaixar os conceitos de framework (utilizado até mesmo pelos concorrentes do mentawai) em tentar isolar o desenvolvedor desse tipo de questão. Desculpe se não me expressei bem.


Lobo wrote:
Na verdade mesmo não é um "bug" o problema é de adaptação para os browsers, o javascript é este :

Code:
 inputMoneyAddEvent = function(o, e, f, s){
     var r = o[r = "_" + (e = "on" + e)] = o[r] || (o[e] ? [[o[e], o]] : []), a, c, d;
     r[r.length] = [f, s || o], o[e] = function(e){
         try{
             (e = e || event).preventDefault || (e.preventDefault = function(){e.returnValue = false;});
             e.stopPropagation || (e.stopPropagation = function(){e.cancelBubble = true;});
             e.target || (e.target = e.srcElement || null);
             e.key = (e.which + 1 || e.keyCode + 1) - 1 || 0;
         }catch(f){}
         for(d = 1, f = r.length; f; r[--f] && (a = r[f][0], o = r[f][1], a.call ? c = a.call(o, e) : (o._ = a, c = o._(e), o._ = null), d &= c !== false));
         return e = null, !!d;
     }
 };
 
 inputMoneyMask = function(o, n, dig, dec){
     o.c = !isNaN(n) ? Math.abs(n) : 2;
     o.dec = dec || ",", o.dig = dig || ".";
     inputMoneyAddEvent(o, "keypress", function(e){
         if(e.key > 47 && e.key < 58){
             var o, s = ((o = this).value.replace(/^0+/g, "") + String.fromCharCode(e.key)).replace(/\D/g, ""), l, n;
             (l = s.length) <= (n = o.c) && (s = new Array(n - l + 2).join("0") + s);
             for(var i = (l = (s = s.split("")).length) - n; (i -= 3) > 0; s[i - 1] += o.dig);
             n && n < l && (s[l - ++n] += o.dec);
             o.value = s.join("");
         }
         e.key > 30 && e.preventDefault();
     });
 }
 


Já isolei o problema milhares de vezes mas não consegui resultados sempre dá problema em seja no FF ou IE.

Se alguém que manja de javaScript quizer dar uma ajuda será bem vinda. 
Lobo


[Avatar]

Joined: 23/01/2006 02:17:14
Messages: 841
Location: Fortaleza-CE
Offline


Lobo, só lembro que não fiz uma crítica.
 



Relaxa cara não ví como crítica, e se fosse uma crítica seria bem vinda.


Desculpe se não me expressei bem.
 


Não peça desculpa porque você não fez nada demais o_0, todo mundo erra! Eu fiz uma M@$%& uma vez no guj "joguei pedra" no cara errado.
Ninguém no planeta tem obrigação de saber usar fórums, como ninguém no planeta tem obrigação de saber como burlar um servidor de irc :] e monitorar a vida dos usuários :]




Atenciosamente,
Hélio Frota

Helio Frota
10+ Java Programmer
heliofrota.com

Member
Mentawai Developer
velo


[Avatar]

Joined: 16/02/2006 13:33:54
Messages: 1197
Location: Jaraguá do Sul - SC
Offline

Pergunto...

Se checasse no server qual o browser do cliente e desse um include diferente pra cada navegador?

VELO

_____________________________________
Mentawai Developer
"When the only tool you have is a hammer, everything looks like a nail"
http://en.wikipedia.org/wiki/Golden_hammer
[Email] [MSN]
Lobo


[Avatar]

Joined: 23/01/2006 02:17:14
Messages: 841
Location: Fortaleza-CE
Offline

Ok , faria um js pra cada mas isso num é Gambit / Adaptação técnica :p ??

Atenciosamente,
Hélio Frota

Helio Frota
10+ Java Programmer
heliofrota.com

Member
Mentawai Developer
velo


[Avatar]

Joined: 16/02/2006 13:33:54
Messages: 1197
Location: Jaraguá do Sul - SC
Offline

Não vejo assim....

Como os browsers não são iguais, a gente tem q ser virar pra tratar os 2 de forma diferente.

Acho esse um bom caminho, se não me engano no request dah pra ver o navegador.

VELO

_____________________________________
Mentawai Developer
"When the only tool you have is a hammer, everything looks like a nail"
http://en.wikipedia.org/wiki/Golden_hammer
[Email] [MSN]
thiagoalgo



Joined: 12/01/2007 13:47:35
Messages: 138
Offline

Lobo wrote:
Ok , faria um js pra cada mas isso num é Gambit / Adaptação técnica :p ?? 


É sim uma gambiarra. O problema é que todos os browsers seguem um padrão (não sei especificamente qual) exceto o IE. Se a solução do IceW0lf funcionar, eu acho interessante pois seria típica e funcional para os dois. Mas em outros casos costuma-se mesmo (na camada de visão) verificar o tipo do browser qdo estas questões de incompatibilidade surgem.

Uma coisa é certa em 99% dos casos. Ou é IE com seu próprio padrão ou é outro browser com padrão comum.
IceW0lf


[Avatar]

Joined: 16/03/2006 08:33:38
Messages: 1546
Location: Brasília
Offline

Tem mais uma coisa...

O problema com os browsers não é apenas na questao das casa decimais mas tambem na quantidade de caracteres que no IE nao fufa e no Fire sim... pelo menos no meu caso.

Leiber Wallace
Voixy ::: Soluções em Telecomunicações
Lobo


[Avatar]

Joined: 23/01/2006 02:17:14
Messages: 841
Location: Fortaleza-CE
Offline

Isso mesmo ICE, essa é a parte ruim da WEB (na minha opinião)

Atenciosamente,
Hélio Frota

Helio Frota
10+ Java Programmer
heliofrota.com

Member
Mentawai Developer
velo


[Avatar]

Joined: 16/02/2006 13:33:54
Messages: 1197
Location: Jaraguá do Sul - SC
Offline

O ruim da net eh q o W3C passou anos (e muitos anos) sentado em cima do proprio saco. A M$ inventou o proprio padrão dela pra internet (q não é 100% aderente ao W3C) e agora o W3C qr ditar regras....

Um pouco de loucura dos bixos mas tudo bem.

Nem o site do google passa no W3C validator, daí vc pensa, qm está certo? O W3C ou o mundo?

Analogia ao mundo java, EJB 2.1, Entity Bean X Hibernate. Quem estava certo? O padrão do JCP (Entity Bean) ou o mundo(Hibernate)? Ver EJB3 para resposta.

VELO

_____________________________________
Mentawai Developer
"When the only tool you have is a hammer, everything looks like a nail"
http://en.wikipedia.org/wiki/Golden_hammer
[Email] [MSN]
 
Forum Index -> Comentários Gerais Go to Page: 1, 2 Next 
Go to:   
Powered by JForum 2.1.6 © JForum Team