collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: Javascript  (Lida 3394 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline ivitro

  • Mini Robot
  • *
  • Mensagens: 451
Javascript
« em: 15 de Julho de 2013, 17:44 »
Olá a todos,

Ando a ver se aprendo qualquer coisa sobre linguagens web.

Num exemplo simples que fiz para maquina de calcular em javascript html só que a parte de javascript não funciona no browser.

Código: [Seleccione]
<html>
<head>
<script type="text/javascript">
<!-- inicio
function a_mais_b(a,b){
x=eval(a);
y=eval(b);

resultado=x y;
document.forms[0].elements[7].value=resultado;
}

function a_menos_b(a,b){
x=eval(a);
y=eval(b);

resultado=x -;
document.forms[0].elements[7].value=resultado;
}

function a_vezes_b(a,b){
x=eval(a);
y=eval(b);

resultado=x*y;
document.forms[0].elements[7].value=resultado;
}

function a_dividir_b(a,b){
x=eval(a);
y=eval(b);

resultado=x/y;
document.forms[0].elements[7].value=resultado;
}

function a_potencia_b(a,b){
x=parseInt(a);
y=parseInt(b);

resultado=Math.pow(x,y);
document.forms[0].elements[7].value=resultado;
}
</script>
</head>

<body>
<form>
<input type="text" size="4" name="a">
<input type="button" value="   " onclick="a_mais_b(document.forms[0].elements[5].value,document.forms[0].elements[6].value)" >
<input type="button" value=" - " onclick="a_menos_b(document.forms[0].elements[5].value,document.forms[0].elements[6].value)" >
<input type="button" value=" x " onclick="a_vezes_b(document.forms[0].elements[5].value,document.forms[0].elements[6].value)" >
<input type="button" value=" / " onclick="a_dividir_b(document.forms[0].elements[5].value,document.forms[0].elements[6].value)" >
<input type="button" value=" pot " onclick="a_potencia_b(document.forms[0].elements[5].value,document.forms[0].elements[6].value)" >

<input type="text" size="4" name="b">
=
<input type="text" size="4" name="resultado">

</form>
</body>
</html>

Só gravei em .html e corri, a parte de fazer os cálculos não faz.

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.753
Re: Javascript
« Responder #1 em: 15 de Julho de 2013, 19:07 »
Tens alguns erros. Usa o console.log(var) para fazeres debug dos valores que estão a entrar na função. Usa as developer tools do firefox ou chrome, acedes através do F12, na consola consegues ver que erros existem.

O primeiro é loga na função de adiçã:
Código: [Seleccione]
resultado=x y;
devia ser:
Código: [Seleccione]
resultado=x+y;

Offline tarquinio

  • Mini Robot
  • *
  • Mensagens: 529
Re: Javascript
« Responder #2 em: 15 de Julho de 2013, 20:02 »
Como o metro já disse, tens algums erros de sintaxe e a consola é a tua melhor amiga aqui. Mesmo que as coisas parecam estar a correr bem é sempre boa idéia ter a consola aberta, podes ter erros que não aparecam logo ao inicio mas dem problemas mais tarde (por exemplo se chamares uma função que não exista, só vai dar erro quando ela for chamada, e não logo ao inicio).

Já agora, em relação à maneira como estás a referenciar as coisas, isso assim é estranho... Estás a ir buscar as variáveis a vectores que contem os vários elementos da página... Isso faria mais sendido se a página fosse dinâmica. Tendo conteudos estáticos o normal é fazer coisas do tipo:
Código: [Seleccione]
<input id="a" type="text" size="4" name="a">

e depois para ir buscar os valores usa-se por exemplo:
Código: [Seleccione]
var value= document.getElementById("a").value;

Da maneira que tu fizeste se adicionas ou removes algum componente os indexes movem-se todos, desta forma sabes sempre que estás a ir buscar as coisas certas.

Offline ivitro

  • Mini Robot
  • *
  • Mensagens: 451
Re: Javascript
« Responder #3 em: 16 de Julho de 2013, 00:00 »
Obrigado pelas dicas..

A cena é que o chrome nao esta a intrepretar o js.. sera que tenho que compilar?

Para fazer isto usei o notepad++, aconselham outro programa?

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.598
    • Tróniquices
Re: Javascript
« Responder #4 em: 16 de Julho de 2013, 00:03 »
Parece-me que não fechaste o comentário. Acho que isso já não se usa, deita fora.

Offline ivitro

  • Mini Robot
  • *
  • Mensagens: 451
Re: Javascript
« Responder #5 em: 16 de Julho de 2013, 00:07 »
Parece-me que não fechaste o comentário. Acho que isso já não se usa, deita fora.

O que ja nao se usa?

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.753
Re: Javascript
« Responder #6 em: 16 de Julho de 2013, 00:10 »
Obrigado pelas dicas..

A cena é que o chrome nao esta a intrepretar o js.. sera que tenho que compilar?

Para fazer isto usei o notepad++, aconselham outro programa?

No chrome carrega F12 e vai à consola, estão lá os erros. Aqui corrigi e ficou a funcionar.

O javascript é script, isto é, não é compilado.

Offline tarquinio

  • Mini Robot
  • *
  • Mensagens: 529
Re: Javascript
« Responder #7 em: 16 de Julho de 2013, 01:00 »
A cena é que o chrome nao esta a intrepretar o js.. sera que tenho que compilar?
Para fazer isto usei o notepad++, aconselham outro programa?

Eu tb uso o notepad++, faz bem o servico ;)
Como o metro já disse, aquilo é um script que é corrido no browser, por isso a unica coisa que precisas mesmo é do teu editor de texto preferido!

Em relação ao browser não correr o javascript, tambem pode ser um problema de segurança, se estiveres a correr a partir de um ficheiro local no disco. Nesses casos eu inicio o Chrome fazendo "chrome --allow-file-access-from-files" (mas se o problema for este na consola tb devia dar um erro qualquer a queixar-se disso, acho eu).