Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda - Campo Monetario Mascara 6 casas Decimais


Clodoaldo Ribas

Pergunta

meu 1º post aqui no forum desculpa ae a falta de jeito nunca participei do forum , sempre acesso nas buscas vejos alguns codigos e tals ajuda pra caramba e hoje to precisando de um help ... tenho o seguinte codigo abaixo que formata as casas decimais em 2 casas decimais , porem preciso que ele formate em 6 casas decimais ex: digitar 1 real ficaria assim 1,000000 , 10 reais , 10,000000 ,etc... sera que alguém ai consegue me dar um help como modificar esse script ?? vlww e desculpa ae se fiz algo errado hehe :wacko:

function MascaraMoeda(objTextBox, SeparadorMilesimo, SeparadorDecimal, e)

{

var sep = 0;

var key = '';

var i = j = 0;

var len = len2 = 0;

var strCheck = '0123456789';

var aux = aux2 = '';

var whichCode = (window.Event) ? e.which : e.keyCode;

if (whichCode == 13) return true;

key = String.fromCharCode(whichCode); // Valor para o código da Chave

if (strCheck.indexOf(key) == -1) return false; // Chave inválida

len = objTextBox.value.length;

for(i = 0; i < len; i++)

if ((objTextBox.value.charAt(i) != '0') && (objTextBox.value.charAt(i) != SeparadorDecimal)) break;

aux = '';

for(; i < len; i++)

if (strCheck.indexOf(objTextBox.value.charAt(i))!=-1) aux += objTextBox.value.charAt(i);

aux += key;

len = aux.length;

if (len == 0) objTextBox.value = '';

if (len == 1) objTextBox.value = '0'+ SeparadorDecimal + '0' + aux;

if (len == 2) objTextBox.value = '0'+ SeparadorDecimal + aux;

if (len > 2) {

aux2 = '';

for (j = 0, i = len - 3; i >= 0; i--) {

if (j == 3) {

aux2 += SeparadorMilesimo;

j = 0;

}

aux2 += aux.charAt(i);

j++;

}

objTextBox.value = '';

len2 = aux2.length;

for (i = len2 - 1; i >= 0; i--)

objTextBox.value += aux2.charAt(i);

objTextBox.value += SeparadorDecimal + aux.substr(len - 2, len);

}

return false;

}

onde ele chama o onkeypress ( ele já tem um um calculo e tals mais precisava so das 6 casas decimais )

<input name="CJ_2QTD1" type="text" id="CJ_2QTD1" size="6" onkeypress="return(MascaraMoeda(this,'.',',',event))" maxlength="12" value="0,00" onblur=calc2("CJ_2QTD1","CJ_PTOT1","CJ_2PTOT1") >

Clodoaldo A. Ribas

Consultor Microsiga

MSN: clodoaldo_ripcurl2001@hotmail.com

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Valeu Rafael pela resposta , então dei uma olhada no maskmoney porem é jquery , vou tentar explicar rapidao minha situação

trabalho com Microsiga e dentro do microsiga existe um modulo chamado portal do vendedor que funciona via web , onde se faz orçamento e tem o famoso C.R.U.D , na tela de inclusao de orçamento o valor do orçamento tem que ir para o BD com o formato de 6 casas decimais , so que tem um problema na linguagem ADVPL não sei se ele faz a chamada de arquivos externos (jquery) pois toda a aplicação roda dentro do servidor do microsiga já o javascript ta no mesmo arquivo ( entendeu rss )

e um pouco cumplicado de entender ... por isso precisava desse formato de 6 casas ... to as uns 3 dias tentando alterar e não consegui...ta embaçado rss.. mais vlww pela ajuda vou tentar ver esse maskmoney se ele funciona.

Link para o comentário
Compartilhar em outros sites

  • 0

dica, rsrsrs, Jquery é uma biblioiteca javascript que facilita o desenvolvimento de uma página web, ela roda em qualquer servidor web.

Só basta você fazer a referencia na página e saber usar logico rsrs o Jquery, e pra falar a verdade, você nem precisa usar o jquery para usar o maskMoney. você só precisa ter o arquivo do jquery e o arquivo maskMoney para que funcione e o resto pode ser codigo javascript !

Qualquer duvida posta ai que agente te ajuda

Link para o comentário
Compartilhar em outros sites

  • 0

opa vlww ae rapaziada pela ajuda....então fiz um teste aqui , funciona consegue sim chamar outro arquivos.. beleza.. fiz o teste com jquery porem sem sucesso vou explicar o porque...

tenho uma tela de inclusao de orçamento essa ta em um form.

tem o campo Preço Unitario que eu preciso que grave em 6 casas decimais -

so que nesse orçamento tenho o 1º item do orçamento que já vem automatico ... ai tenho um botao que adiciona um novo item ... ai tenho q colocar o Preço Unitario , e exatamente esse que da erro no script que to usando ... não fui eu que desenvolveu essa parte... então nem sei o que o cara fez... vou postar a parte que adiciona o segundo item na tela e quando adiciona esse segundo item a mascara não funciona.... vou postar o script q to usando

=================

&lt;script language=javascript src=""></SCRIPT>

&lt;script src="imagens/event.js" type="text/javascript"></script>

&lt;script type="text/javascript">

//<![CDATA[

document.write = function(){

document.getElementById("content").appendChild(document.createElement("span")).innerHTML = [].slice.call(arguments).join("");

};

function formatCurrency(o, n, dig, dec){

new function(CJ_PUNIT1, dig, dec, m){

addEvent(o, "keypress", function(e, _){

if((_ = e.key == 45) || e.key > 47 && e.key < 58){

var o = this, d = 0, n, s, h = o.value.charAt(0) == "-" ? "-" : "",

l = (s = (o.value.replace(/^(-?)0+/g, "$1") + String.fromCharCode(e.key)).replace(/\D/g, "")).length;

m + 1 && (o.maxLength = m + (d = o.value.length - l + 1));

if(m + 1 && l >= m && !_) return false;

l <= (n = CJ_PUNIT1) && (s = new Array(n - l + 2).join("0") + s);

for(var i = (l = (s = s.split("")).length) - n; (i -= 3) > 0; s[i - 1] += dig);

n && n < l && (s[l - ++n] += dec);

_ ? h ? m + 1 && (o.maxLength = m + d) : s[0] = "-" + s[0] : s[0] = h + s[0];

o.value = s.join("");

}

e.key > 30 && e.preventDefault();

});

}(!isNaN(n) ? Math.abs(n) : 2, typeof dig != "string" ? "." : dig, typeof dec != "string" ? "," : dec, o.maxLength);

}

//]]>

</script>

&lt;script language=JavaScript>

=============================

esse aqui e o que valida o input com a mascara certa ....

&lt;script type="text/javascript">

//<![CDATA[

formatCurrency(document.forms.inc.CJ_PUNIT1, 6);

//]]>

</script>

vou destacar em vermelho .... queria uma ajuda como chamo a função para adicionar no input name="CJ_PUNIT' q ta em vermelho ... tipo o onkeypress ai eu sei q funciona... porque o antigo era assim ....

======================

function Adiciona_Item()

{

var table = document.getElementById("tabela_itens");

var numOfRows = table.rows.length;

var numOfCols = table.rows[numOfRows-1].cells.length;

var newRow = '';

var cHtml = '';

newRow = table.insertRow(numOfRows);

//Insere a linha com os dados preenchidos

newCell = newRow.insertCell(0)

newCell.innerHTML = '<a href="#" onclick="Remove_Item(this);"><img src="imagens/delete.png" width="25" height="25" border="0" align="absmiddle"></a>';

newCell = newRow.insertCell(3)

cHtml = '<input name="CJ_PUNIT' + numOfRows +'" type="text"' ;

cHtml = cHtml + '" size="7" maxlength="16" value="0,00" onblur=calc1("CJ_QTD'+ numOfRows+'","CJ_PUNIT'+ numOfRows+'","CJ_PTOT'+numOfRows+'","CJ_2QTD'+numOfRows+'","CJ_2PTOT'+numOfRows+'")>';

newCell.innerHTML = cHtml;

=====================================================

Link para o comentário
Compartilhar em outros sites

  • 0

Opa mais uma vez brigadaoo rapaziada pela ajuda ...então cara tentei utilizar esse script q você passou e não consegui ....

não sei se fiz certo tinha que chamar o script nessa linha , no onkeypress e a unica forma q funciona.... já teste outro script porem com 2 casas decimais ... porem não encontrei nenhum com 6 casas e q funcione atraves do onkeypress..

cHtml = '<input name="CJ_PUNIT' + numOfRows +'" type="text" onkeypress="return(number_format(this,';

cHtml = cHtml + "1, 6, ',', '')";

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...