Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Remazela

PHP - Validar Campo Moeda(monetário)

Recommended Posts

Caros amigos

Por favor, me perdoa por recorre ajuda dos amigos.

Infelizmente, tentei de todas formas conseguir criar uma função que pudesse validar campo monetário em PHP.

Fiz várias busca infrutífera, para entender como posso fazer esta função.

Gostaria de criar uma função que possa validar e criar uma máscara para que o usuário possa apenas digitar valor, por exemplo:

Máscara: 000.000,00 ->[ conforme o usuário vai digitando o INPUT busca a máscara automaticamente]

Tentei com jQuery, mas não tive sucesso.

Por favor, peço que não pense que me esforcei, caso alguém tenha algum exemplo dessa rotina, fico grato.

Atenciosamente,

Renato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caros amigos

Por favor me desculpa, aproveitando a dúvida do amigo Ljrbrasil, consegui solucionar minha dúvida, em relação á máscara de campo valor em PHP.

PERGUNTA: como consigo limitar o tamanho de caracteres, usei o maxlength, mas não consegui.

Grato,

Renato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Execute o exemplo a seguir, validando com Javascript.

<script>
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 == '')
    {
        r='0,00';
    }
    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>

Testando....<hr>
<input type="text" size="9" onKeyUp="dinheiro(this,9)"> </input>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caros amigos, desde já agradeço ajuda de todos.

Caro amigo aoliveira178, Deus te abençoa por sua ajuda.

Me ajudou muito.

Apenas outra dúvida, para corrigir um erro de cadastro.

Fiz o seguinte código de validação de campos com jQuery, conforme código abaixo:

$(document).ready(function(){
	
	$("#cadastraImovelCliente").validate({
						   
				rules:{
				titulo:{required:true},
				negocio:{required:true},
				tipo:{required:true},
				valor:{required:true},
				descricao:{required:true},
				quartos:{required:true},
				banheiros:{required:true},
				salas:{required:true},
				facilidades:{required:true}
				},
				
	   messages:{
	            titulo:{required:"Informe o Título do Anúncio!"},
		    negocio:{required:"Selecione o Negócio!"},
		    tipo:{required:"Selecione o Tipo de Negociação!"},
		    valor:{required:"Informe o valor!"},
		    descricao:{required:"Descreva o imóvel!"},
		    quartos:{required:"Quantos quartos tem o imóvel?"},
		    banheiros:{required:"Quantos banheiros tem o imóvel?"},
		    salas:{required:"Quantas salas tem o imóvel?"},
		    facilidades:{required:"Informe algumas facilidades!"}
		},						   
   });

})

Como faço para validar o CAMPO VALOR, se for = 0[zero], o sistema valida e não deixa gravar no Banco e pede que informe um valor ?

Grato a todos.

Atenciosamente,

Renato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caros amigos

Grato a todos que me ajudaram.

Consegui resolver o suposto erro de validação.

No código abaixo, fiz uma pequena alteração e com isso força o valor ser informado acima de 0,00:

    ...

          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;
              };
          };

     };

 ...

//Alterei para:

          if (r=='0,00'){
             return false; //Força a ser informado um valor acima de 0,00
          } 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;
              };
          };

     };

Grato a todos.

Atenciosamente,

Renato

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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