Ir para conteúdo

POWERED BY:

Arquivado

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

Paulo Rodrigues

Validação de %

Recommended Posts

Ae galera tudo bem?Vou mandar aqui minha duvida, dai se alguem souber como resolve-la me ajuda mto! hehe.Seguinte:Tenho um formulario, e nele lista alguns campos para colocar um numero de %.Ex:No clique, a pagina retornou 3 campos. A soma desses 3 campos não pode ser maior do que '100'antes de gravar, nesse caso estava tentando no evento 'onSubmit' do form, fazer a validação, mas nao tive o sucesso que gostaria. pois os 3 campos que falei, poderiam ser 2..5 ou quantos a pagina do usuario for gerar. mas sempre nao deve passar de 100 a soma.. Me digam ideias de como deveria fazer? vlw pela ajuda! ;]

Compartilhar este post


Link para o post
Compartilhar em outros sites

veja esta função

function calcular(avista,venda,desc){	var txtAvista,txtVenda,txtDesc,dblVista,dblVenda;	txtAvista = avista.value;	txtAvista = parseFloat(txtAvista);	txtVenda = venda.value;	txtVenda = parseFloat(txtVenda);	txtDesc = (txtVenda * 100)/txtAvista;	if(txtDesc <= 100)	{		txtDesc = 100 - txtDesc;		desc.value = txtDesc;	}}
nela pego o valor d dois campos e jogo o resultado p/ outro, adapte d acordo com suas necessidades!

HTML

<form name="frm" id="frm"><input type="text" name="valor1" size="6" maxlength="6" value="0,00"><input type="text" name="valor2" size="6" maxlength="6" value="0,00" onBlur="calcular(document.frm.valor1,this,document.frm.valor3);" ONCHANGE="alteravalor(this);"><input type="text" name="valor3" size="6" maxlength="6" value="0" onBlur="calcular(document.frm.valor1,document.frm.valor2,document.frm.valor3);" ONCHANGE="alteravalor(this);"></form>
certooooooooooooo?hehehe

Compartilhar este post


Link para o post
Compartilhar em outros sites

Huuum, nao sei se entendi mto bem, mas valew!seguinte: meus campos sao variaveis, ou seja sempre podem mudar, entao nao poderia usar uma function com chamadas fixas.. Estou mudando esse seu para fazer dinamico, se eu tiver sucesso posto aqui pra ter pra galera que procura! :]Valewwwww se mais alguem souber outra maneira me avisa tambem :]

Compartilhar este post


Link para o post
Compartilhar em outros sites

fixo é só fazer assim:

function calcular(){	var txtAvista,txtVenda,txtDesc;	txtAvista = document.getElementById("valor1").value;	txtVenda = document.getElementById("valor2").value;	txtDesc = (txtVenda * 100)/txtAvista;	if(txtDesc <= 100)	{		txtDesc = 100 - txtDesc;		document.getElementById("valor3").value; = txtDesc;	}}
e no HTML

<form name="frm" id="frm"><input type="text" name="valor1" size="6" maxlength="6" value="0,00"><input type="text" name="valor2" size="6" maxlength="6" value="0,00" onBlur="calcular();"><input type="text" name="valor3" size="6" maxlength="6" value="0" onFocus="calcular();" ></form>
agora simmmmmmmmm!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fixo foi o que falei, para mim nao tem problemas, eu disse que o meu 'nao' é fixo, heheheh mas valew! to tentando com um 'for' ate o maximo que foi gerado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado! ta funcionando! mas vejo que ele ta pegando por todas as inputs, eu preciso disso mesmo! mas no caso, se eu tiver tagname input no mesmo form, porem que seja para texto, nome e etc. e quizer pegar so as que sao para os numeros? tipo tenho +/- isso:

 

<input type="text" id="nome" value="digite seu nome"><br>Agora digite as composicoes (soma max: 100)<!-- aqui vem as comp dinamicas por tipo de cadastro -->Verde: <input type="text" id="comp[]" name="comp[]" value="">Azul: <input type="text" id="comp[]" name="comp[]" value="">Vermelho: <input type="text" id="comp[]" name="comp[]" value="">botao [submit]

vlw :)

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.