Ir para conteúdo
Claudia França

Mostrar campo moeda

Recommended Posts

Como eu faço para o valor recebido em dólar ou real, mostrar os campos de moeda.

 

 <select >
            
            <option value="Real" id="valor" size="8" maxLength="8" >Real R$=</option>
            
            <option value="Dolar" id="valor" size="8" maxLength="8" >Dolar $=</option>
           
        </select>
        
        <input type "text" id="valor"  onBlur= 'pegavalor(this.value);'> </br>

 

 

Tentei algumas coisas mas, não funciona.

O resultado tem que aparecer como na imagem.

 

Captura de Tela 2018-09-26 às 16.03.58.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Claudia, saudações.

 

Tenta assim:

 

script

<script language="JavaScript" > 

    function currencyFormat(fld, milSep, decSep, 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;  // Enter
      key = String.fromCharCode(whichCode);  // Get key value from key code

      if (strCheck.indexOf(key) == -1) return false;  // Not a valid key
      len = fld.value.length;

      for(i = 0; i < len; i++)
      if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break;

      aux = '';
      for(; i < len; i++)
      if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);
      aux += key;
      len = aux.length;

      if (len == 0) fld.value = '';
      if (len == 1) fld.value = '0'+ decSep + '0' + aux;
      if (len == 2) fld.value = '0'+ decSep + aux;
      if (len > 2) {
        aux2 = '';
        for (j = 0, i = len - 3; i >= 0; i--) {
        if (j == 3) {
        aux2 += milSep;
        j = 0;
        }
        aux2 += aux.charAt(i);
        j++;
        }
        fld.value = '';
        len2 = aux2.length;
        for (i = len2 - 1; i >= 0; i--)
        fld.value += aux2.charAt(i);
        fld.value += decSep + aux.substr(len - 2, len);
      }
      return false;
    }

    function id(el) {
      return document.getElementById( el );
    }
    function total( qtde, vrUnit ) {
      return parseFloat(qtde.replace(',', '.'), 10) * parseFloat(vrUnit.replace(',', '.'), 10);
    }
    window.onload = function() {
      id('vrUnit').addEventListener('keyup', function() {
        var result = total( this.value , id('qtde').value );
        id('vrTotal').value = String(result.toFixed(2)).formatMoney();
      });

      id('qtde').addEventListener('keyup', function(){
        var result = total( id('vrUnit').value , this.value );
        id('vrTotal').value = String(result.toFixed(2)).formatMoney();
      });
    }

    String.prototype.formatMoney = function() {
      var v = this;

      if(v.indexOf('.') === -1) {
        v = v.replace(/([\d]+)/, "$1,00");
      }

      v = v.replace(/([\d]+)\.([\d]{1})$/, "$1,$20");
      v = v.replace(/([\d]+)\.([\d]{2})$/, "$1,$2");
      v = v.replace(/([\d]+)([\d]{3}),([\d]{2})$/, "$1.$2,$3");

      return v;
    };

</script>    

 

no form (INPUT), fica assim:

                    <div class="col-sm-2 invoice-col">
                      <label for="vlrUnit">Valor Unitário</label>
                      <input type="text" id='vrUnit' name="vrUnit" class="form-control" maxlength="12" 
                             onkeypress="return(currencyFormat(this,'','.',event))" >
                    </div>   

 

Espero ter ajudado.

 

Renato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Claudia,

 

também pode fazer assim:

 

no form (INPUT):

            <br/>
            <label> 
              <span>Valor........:</span>
                <input type="text" name="valor" size="15" onKeyUp="dinheiro(this,15)" />
             </label>

 

script:

<script type="text/javascript">

  //Valida os campos moeda do formulário 
  function dinheiro(cur,len) {
     n='__0123456789';
     d=cur.value;
     l=d.length;
     r='';

     if (l > 0){
        z=d.substr(0,l-1);
        s='';
        a=2;

          for (i=0; i < l; i++){
              c=d.charAt(i);
              if (n.indexOf(c) > a){
                  a=1;
                  s+=c;
              };
          };


          l=s.length;
          t=len-1;
          if (l > t){
              l=t;
              s=s.substr(0,t);
          };


          if (l > 2){
              r=s.substr(0,l-2)+','+s.substr(l-2,2);
          } else {
              if (l == 2){
                  r='0,'+s;
              } else  {
                  if (l == 1){
                      r='0,0'+s;
                  };
              };
          };


          if (r=='0,00'){
             return false; 
          } else {
              l=r.length;
              if (l > 6){
                  j=l%3;
                  w=r.substr(0,j);
                  wa=r.substr(j,l-j-6);
                  wb=r.substr(l-6,6);
                  if (j > 0){
                      w+='.';
                  };

                  k=(l-j)/3-2;
                  for (i=0; i < k; i++){
                      w+=wa.substr(i*3,3)+'.';
                  };
                  r=w+wb;
              };
          };

     };

     if (r.length <= len){
      cur.value=r;
     } else {
      cur.value=z;
     };

     return 'ok';

  };

</script>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
18 horas atrás, Paulo Cesar Di Cicco disse:

você precisa aplicar uma mascara de valor no input.
Seja em PHP ou Jquery.

Procure por number_format ou mascara de valor 

 Obrigada.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 27/09/2018 at 10:54, Remazela disse:

Claudia,

 

também pode fazer assim:

 

no form (INPUT):


            <br/>
            <label> 
              <span>Valor........:</span>
                <input type="text" name="valor" size="15" onKeyUp="dinheiro(this,15)" />
             </label>

 

script:


<script type="text/javascript">

  //Valida os campos moeda do formulário 
  function dinheiro(cur,len) {
     n='__0123456789';
     d=cur.value;
     l=d.length;
     r='';

     if (l > 0){
        z=d.substr(0,l-1);
        s='';
        a=2;

          for (i=0; i < l; i++){
              c=d.charAt(i);
              if (n.indexOf(c) > a){
                  a=1;
                  s+=c;
              };
          };


          l=s.length;
          t=len-1;
          if (l > t){
              l=t;
              s=s.substr(0,t);
          };


          if (l > 2){
              r=s.substr(0,l-2)+','+s.substr(l-2,2);
          } else {
              if (l == 2){
                  r='0,'+s;
              } else  {
                  if (l == 1){
                      r='0,0'+s;
                  };
              };
          };


          if (r=='0,00'){
             return false; 
          } else {
              l=r.length;
              if (l > 6){
                  j=l%3;
                  w=r.substr(0,j);
                  wa=r.substr(j,l-j-6);
                  wb=r.substr(l-6,6);
                  if (j > 0){
                      w+='.';
                  };

                  k=(l-j)/3-2;
                  for (i=0; i < k; i++){
                      w+=wa.substr(i*3,3)+'.';
                  };
                  r=w+wb;
              };
          };

     };

     if (r.length <= len){
      cur.value=r;
     } else {
      cur.value=z;
     };

     return 'ok';

  };

</script>

 

Remazela, obrigada pela ajuda, refiz os testes com meu código e seguindo seu raciocínio e deu tudo certo.  Muita sabedoria para vida toda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Soneca_BO
      Boa tarde Pessoal!
       
      Estou a um bom tempo tetando fazer um CRUD em um banco de dados não tradicional e sim do "Cognos tm1",
       
      Estou fazendo uma aplicação WEB e queria usar o Ajax com jquery e javascript(dependendo do caso) para fazer um CRUD
      salvando dados deletando e fazendo as devidas atualizações, mas não estou conseguindo fazer o "PUT" e nem o "DELETE", 
      E não faço ideia de como começar a escrever o código para os métodos informados acima.
       
      Segue código criado para fazer o GET (só conseguir fazer o GET)
      $.ajax({ username: 'admin', password: ' ', url: "http://localhost:8881/api/v1/Cubes('ACO.200.Despesas')/Views('visao')/tm1.Execute?$expand=Cube($select=Name;$expand=Dimensions($select=Name)),Axes($expand=Tuples($expand=Members($select=Name;$expand=Element($select=UniqueName)))),Cells", method: 'POST', headers: { "Authorization": "Basic YWRtaW46", "cache-control": "no-cache", }, contentType: "application/json; charset=utf-8", dataType: "json", success: function (data) { console.log(data); }, error: function () { alert("erro"); } });  
       
      Obs.: não sou muito bom em rest e estou buscando aprender mais sobre ele, se alguém poder me ajudar agradeceria muito.
       
      Desde já agradeço alguém que conseguir me da uma força.
       
    • Por Claudia França
      Prezados há dias consegui chegar no fim do projeto e, agora resta apenas corrigir o erro que ocorro no fim da transação. "Atualizar informações de pagamento. "
       Eu tenho aqui a doc. Mas não seu exatamente o que alterar no código para corrigir isso. E preciso de ajuda,
       
      https://www.userede.com.br/desenvolvedores/pt/produto/e-Rede#documentacao-3ds
       
      function updatePaymentAPI($apikey, $secret, $callid, $currencyCode,$total, $subtal){
          $time = time();
          $query_string = "apikey=".$apikey;
          $resource = "payment/info/".$callid;
          $body = "{\"updateInfo\":[{\"payInfo\":{\"reason\":\"ProductionKey Test\",
          \"avsResponseCode\":\"Y\",\"total\":".$total.",\"currencyCode\":\"".$currencyCode."\",
          \"eventStatus\":\"Success\",\"eventType\":\"Authorize\"}},{\"orderInfo\":{\"currencyCode\":\"".$currencyCode."\",
          \"discount\":0,\"eventType\":\"Confirm\",\"giftWrap\":0,\"misc\":0,
          \"reason\":\"Order_placed\",\"shippingHandling\":0,\"subtotal\":".$subtal.",\"tax\":0,\"total\":".$total."}}]}";
          $certificatePath = 'cert.pem';
          $privateKey = 'key_9e082920-8ec4-441a-8cfa-588b0829d326.pem';
          //Hash for x-pay-token
          $token = $time.$resource.$query_string.$body;
          $hashtoken = "xv2:".$time.":".hash_hmac('sha256', $token, $secret); //X-PAY-TOKEN String
          //$url = "https://api.visa.com/wallet-services-web/".$resource."?".$query_string;
          $url = "https://api.visa.com/wallet-services-web/".$resource."?".$query_string;
          updatePaymentLog("=========================================\n\n");
          updatePaymentLog("CallID : ".$callid."\n");
          updatePaymentLog("URL : ".$url."\n\n");
          updatePaymentLog("Update Payment Request Parameters : \n");
          updatePaymentLog($body);
          //Header
          $header = (array("X-PAY-TOKEN: ".$hashtoken, "Accept: application/json", "Content-Type: application/json","X-FRAME-OPTIONS: SAMEORIGIN"));
          $ch = curl_init();
          curl_setopt($ch, CURLOPT_URL, $url);
          curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
          curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
          curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
          curl_setopt($ch, CURLOPT_SSLVERSION , 1);
          curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
          curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
          //curl_setopt($ch, CURLOPT_SSLCERT, $certificatePath);
          //curl_setopt($ch, CURLOPT_SSLKEY, $privateKey);
          curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
          curl_setopt($ch, CURLOPT_POSTFIELDS,$body);
          //getting response from server
          $response = curl_exec($ch);
          if(!$response) {
              die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
          }
          $statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
          curl_close($ch);
          $json = "";
          $ret = array(
            'status' =>"",
            'data' => ""
          );
          if($statusCode == 200) { //If success => empty Object.
              $ret['status'] = 'success';
              updatePaymentLog("\nUpdate Payment Info called Successfully...\n");
          }else{ // Return Error Object
              $ret['status'] = 'fail';
              $ret['data'] = $response;
              updatePaymentLog("\nSomething Went Wrong....\n");
              $json = json_decode($response);
              $json = json_encode($json, JSON_PRETTY_PRINT);
          }
          updatePaymentLog("\nStatus Code : " . $statusCode ."\n");
          updatePaymentLog($json);
          updatePaymentLog("\n");
          echo json_encode($ret);
      }
      updatePaymentAPI($visaApiKey, $sharedSecret, $callid, $currencyCode, $total, $subtotal);
      ?>
       
       
       
       
       
    • Por Artes Ussler
      Bom dia
       
      Alguns navegadores sublinham ou trocam a cor dos números de telefones que estão no site.
       
      Como faço para remover isso?
       
      Se alguém puder ajudar, eu fico grato.
    • Por Andre Cunha
      Olá pessoal!
       
      Estou há algumas semanas tentando fazer a integração de um botão de doação visacheckout para uma ONG porém sem sucesso, escolhi a Cielo como a gateway de pagamento e merchant provider, no entanto estou enfrentando algumas dificuldades na implementação pois o site de ONG é em WooCommerce. Também com dificuldade devido a uma falta de entendimento entre a Cielo e Visa, pois requisitei as chaves de produção faz algumas semanas para a Visa e a mesma ainda não me retornou, conforme abaixo, as chaves continuam em progresso
       

       
      Solicitei as chaves para Visa e a mesma me disse para contatar diretamente a Cielo, pois ela que seria responsável por fazer essa integração. Quando contatei a Cielo, esta me disse que não poderia prosseguir com a integração sem as chaves, e agora estou contatando novamente a Visa para ver se consigo as chaves. 
       
      Algum de vocês já conseguiu implementar o botão de doação? Utilizaram a Cielo ou outro meio? Estou realmente precisando terminar isso pois a ONG está perdendo várias doações e está complicado!
       
      Obrigado a quem puder dar uma luz.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.