Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
É um código de treino, a pessoa tem 5 habilidade e pode treinar as 5 simultaneamente com esse código. Tem um único defeito que irei corrigir mais tarde...
Enfim, o código funciona apenas no IE, testei no google chrome e no mozilla firefoz, em ambos acontece o mesmo erro: Depois que clica em "cima", a habilidade (que deveria ficar com o valor 2) vai para NaN...
Reli o código diversas vezes... eu tinha feito tudo com 'document.all' vi em outros sites que era melhor utilizar 'document.getElementById('...')', substitui tudo... e nada mudou...
Já fiz o Ctrl+shift+J, resolvi todos os 'errinhos' e mesmo assim... o NaN continua, vou postar apenas uma parte do código (pois é um código grande...), desde já agradeço... estou aprendendo JavaScript e tenho encontrado muita dificuldade nessa linguagem :[
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title></title>
</head>
<script type="text/javascript">
function Mudar(atributo, TagId) {
var TagId;
var valor1 = document.getElementById('valor1').value;
var inicio = 1;
if(atributo == "ataque"){
if(TagId == "dim") {
valor1--;
/*
if (valor1 == 1){
var exibe = document.getElementById('valor1');
exibe.innerHTML = 1;
document.getElementById('valor1').value = 1;
var altera = document.getElementById('custo');
altera.innerHTML = "";
document.getElementById('custo').value = ("");
}*/
if (valor1 >= 1){
var exibe = document.getElementById('valor1');
exibe.innerHTML = valor1;
document.getElementById('valor1').value = valor1--;
var custo = (valor1 - 1)*500;
var altera = document.getElementById('custo');
altera.innerHTML = custo+",00";
document.getElementById('custo').value = custo;
}
}
if (TagId == "aum"){
valor1++;
var custo = (valor1 - 1)*500;
var mostre = document.getElementById('valor1');
mostre.innerHTML = valor1;
document.getElementById('valor1').value = valor1++;
var altera = document.getElementById('custo');
altera.innerHTML = custo+",00";
document.getElementById('custo').value = custo;
}
}
</script>
<body>
<form name="teste" method="POST">
<div id="ataque">Ataque</div>
<div id="valor1" name="valor" value="1">1</div>
<input name="dim" type="button" value="baixo" onClick="Mudar('ataque', 'dim')"/>
<input name="aum" type="button" value="cima" onClick="Mudar('ataque', 'aum')"/>
<div id="custo" value="0"></div>
</form>
</body>
</html>Tentei tudo o que disse... sem sucesso, o erro persiste e continua funcionando no IE...
Não entendo porque não está recebendo um valor número, o nome "TagId" mudei para "id_da_tag" coloquei + 1 e - 1 em vez de ++ e --, e também coloquei o "parseInt" em todas as variáveis (não conhecia essa função, sei muito pouco sobre JavaScript)... De qualquer forma, agradeço a ajuda ^^
>
<form name="teste" method="POST">
<div id="ataque">Ataque</div>
<div id="valor1" name="valor" value="1">1</div>
<input name="dim" type="button" value="baixo" onClick="Mudar('ataque', 'dim')"/>
<input name="aum" type="button" value="cima" onClick="Mudar('ataque', 'aum')"/>
[/code]
Creio que está aqui o erro. Posso estar enganado, mas acho que "value" não é um atributo de tags "div". Talvez bastaria pegar o innerHTML das divs e pronto. Use o parseInt() para garantir que o resultado seja um "integer" e não uma "string".
>
Creio que está aqui o erro. Posso estar enganado, mas acho que "value" não é um atributo de tags "div". Talvez bastaria pegar o innerHTML das divs e pronto. Use o parseInt() para garantir que o resultado seja um "integer" e não uma "string".
Ohh sim, tente mudar isto... o value não deve ser adicionado a uma div, mas você pode coloca-lo em um li, por exemplo
:o Vocês são gênios... Fiquei um GRAAAAAAaaNDE tempo sem internet, testei colocar listas como haviam dito e funcionou (apenas alguns erros de programação que pretendo corrigir mais tarde), me digam... innerHTML funciona em TEXTAREA?
Quero colocar botões de negrito, itálico, sublinhado, imagens... como os que temos aqui no IMasters... vi no Tribal Wars e notei que foi utilizado Ajax... não conheço NADA de Ajax... só conseguirei fazer com Ajax???
Eu consegui fazer um... mas se eu digito algo... dá errado, isto é... se eu só clico em negrito, itálico... funciona direitinho... mas qualquer coisa que escrevo, quando vou clicar em negrito (ou qualquer outro) não vai... mandei um alert e exibiu corretamente, mas no textarea não funcionou... sabem como posso corrigir isto?
Ahhh... muito obrigado desde já, me ajudaram muito com as respostas anteriores ^^
Talvez ambos os navegador estejam lendo o value "1" como texto, e não como numero... Tente colocar assim:
Se não solucionar, tente trocar os "++" e "--" por "+1" e "-1", uma vez tive problemas com isso e quando mudei funcionou...
Outra coisa, acho que o nome "TagId" pode estar dando alguma interferencia, pelo menos aqui no Imasters ele está lendo como se fosse uma função, observe que a cor dele não esta preta como o comum
TagId
Se ainda assim persistir o problema... Aí não sei...