Carlos Rocha Posted August 18, 2012 at 08:49 PM Report Share #472781 Posted August 18, 2012 at 08:49 PM (edited) Tenho na função abaixo que compara 2 valores inteiros e verifica se o primeiro é maior ou menor que o segundo. Na verdade, é uma funçao que recebe a quantidade que um iten tem em estoque(valor inteiro) e compara com a quantidade(tambem valor inteiro) que o cliente colocou no carrinho de compras O erro que esta aontecendo é que, se no banco tiver por exemplo, 5 unidades e, o usuário inserir no carrinho(através de um campo text) de 6 até 9 unidades, aí a funçao barra a execução e diz que não tem a quantidade toda em estoque. Portanto, caso o usuario insira um valor maior ou igual a 10(por exemplo: 10, 150......), ai o codigo deixa passar. Oque será isso? Segue o código function valida_carrinho(form, itens) { with (form) { j=0; for (var i=0; i < itens; i++) { if (elements[j].value > elements[j+1].value) { alert('Observe um dos produtos do carrinho\nVocê adicionou '+elements[j].value+' \nPorem, só tem '+ elements[j+1].value); elements[j].focus(); return (false); } j=j+2; } form.submit(); } } Tenterei alterar um parte do codigo para if (eval(elements[j].value) > eval(elements[j+1].value)) Mas deu no mesmo. Edited August 18, 2012 at 08:50 PM by carcleo Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted August 18, 2012 at 10:11 PM Report Share #472784 Posted August 18, 2012 at 10:11 PM o conteúdo/valor de um elemento é sempre texto, não é possível executar qualquer tipo de operação matemática entre os elementos, assim como a comparação numérica. o que estás a fazer no seguinte código : if (elements[j].value > elements[j+1].value) é a comparação das duas strings que estão nos dois inputs. para fazer a comparação numérica, necessitas de dizer que o valor que se encontra nos inputs são valores númericos, e só depois fazer a comparação: if (parseInt(elements[j].value) > parseInt(elements[j+1].value)( ou então para números não inteiros if (parseFloat(elements[j].value) > parseFloat(elements[j+1].value)( IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Carlos Rocha Posted August 19, 2012 at 01:28 AM Author Report Share #472812 Posted August 19, 2012 at 01:28 AM Deu certo. Muito obrigado. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now