Antes de mais nada um excelente 2011 a todos!
Estou tentando fazer um formulário onde, o usuário entra com uma primeira informação (Moeda Real - com direito a centavos e tudo), entra com um número (número inteiro) e quando ele leva o cursor para um terceiro lugar/label, automaticamente o valor em reais é dividido pelo valor inteiro e o resultado é apresentado.
Para esta primeira etapa utilizei:
<script type="text/javascript"> // Script que encontra o resultado da operação de Salário hora $(document).ready( function() { $('#salariomensal, #divisordehoras').blur(function(){ var salariomensal = $("#salariomensal").val(); var divisordehoras = $("#divisordehoras").val(); var salariohora = "" if ((salariomensal == "") && (divisordehoras == "")) { salariohora = ""; } if ((salariomensal != "") && (divisordehoras == "")) { salariohora = ""; } if ((salariomensal != "") && (divisordehoras != "")) { salariohora = (parseInt(salariomensal) / parseInt(divisordehoras)); } $("#salariohora").val(salariohora); }) }); </script>
Até aí foi tudo legal!
Só que, eu precisei colocar o script maskMoney e o JQuery, para fazer com que o valor seja exibido em reais corretamente, tanto no preenchimento como após o envio do formulário.
$("#salariomensal").maskMoney({symbol:"",decimal:",",thousands:"."}); $("#salariohora").maskMoney({symbol:"",decimal:",",thousands:"."});
Aí, quando eu obtenho o resultado, os valores ficam errados, tipo:
Imaginando que salariomensal = 3000 e o valor que divide é 15...
R$ 3.000,00 / 15 = 0.2
Apesar de a máscara de R$ 3.000,00 aparecer corretamente, a operação que está sendo realizada está dividindo apenas o 3 pelo número 15 e não o 3000 (por causa do ponto). Se o número for < 1000 a conta fica correta.
Aí, surgem duas dúvidas:
1 - Está correto utilizar o parseInt(variavel) no trecho abaixo?
salariohora = (parseInt(salariomensal) / parseInt(divisordehoras));
Se não está correto, como eu tenho que fazer, já que eu tentei "parseFloat" e aí o script acima não funciona.
2 - Como posso utilizar a máscara para que a divisão seja feita corretamente e o resultado também apareça com a máscara?
Já fiz um monte de tentativas e todas deram erradas.
Alguém pode dar uma ajuda por favor?
Obrigado!
psillus