Ir para conteúdo

POWERED BY:

Arquivado

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

kim sue il

Código JavaScript roda apenas no IE

Recommended Posts

É 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>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Talvez ambos os navegador estejam lendo o value "1" como texto, e não como numero... Tente colocar assim:

var valor1 = document.getElementById('valor1').value;
var valor1 = parseInt(valor1);

 

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...

Compartilhar este post


Link para o post
Compartilhar em outros sites

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 ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

<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".

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

: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 ^^

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.