2013-05-01 2 views
0

Я пытаюсь получить данные из трех текстовых полей, умножить их и поместить значение в другое текстовое поле.Javascript - значение изменения текстового поля

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <script type='text/javascript'> 
     function run() 
     { 
      var eq = document.getElementById("Eq"); 
      var m = document.getElementById("m1"); 
      var c = document.getElementById("c"); 
      var dT = document.getElementById("dT"); 
      var ek = document.getElementById("Ek"); 
      var v = document.getElementById("v"); 

      if(eq.value.length == 0) 
      { 
       var result = parseFloat(m.value) * parseFloat(c.value) * parseFloat(dT.value); 
       alert(result); 
       eq.value = result.toString(); 

      } 
      if(c.value.length == 0) 
      { 
       c.value = eq.value/(m.value * dT.value); 
      } 

     } 
     function m1change() 
     { 
      var m1 = document.getElementById("m1"); 
      var m2 = document.getElementById("m2"); 
      m2.value = m1.value; 

     } 
     function m2change() 
     { 
      var m1 = document.getElementById("m1"); 
      var m2 = document.getElementById("m2"); 
      m1.value = m2.value; 
     } 
    </script> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>Welcome - ברוכים הבאים</title> 
</head> 
<body> 
    <form action=""> 
     <h1>Eq = m * c * ΔT</h1> 
     <input type="number" max="2147483648" id="Eq" maxlength="10" /> = <input type="number" max="10" class="m" id="m1" maxlength="10" onkeyup="m1change()" /> * <input type="number" max="2147483648" id="cHeat" maxlength="10" /> * <input type="number" max="2147483648" id="dT" maxlength="10" /> 
     <h1>Ek = (m * v²)/2</h1> 
     <input type="number" max="2147483648" id="Ek" maxlength="10" /> = (<input type="number" max="10" class="m" id="m2" maxlength="10" onkeyup="m2change()" /> * <input type="number" max="2147483648" id="v" maxlength="10" /><font size="6.5">²</font> )/2 
     <h1>Eh = m * g * h</h1> 

     <input type="reset" /> <input type="button" onclick="run()" value="Calculate" /> 

     <h6>by X</h6> 
    </form> 
</body> 
</html> 

Это не предупреждает результат, поэтому я предполагаю, что он застревает в объявлении результата.

Что я делаю неправильно?

Спасибо.

+0

любая ошибка в окне консоли ошибок? – Dolly

+0

Не то, чтобы я мог видеть ... – user2338361

+0

попытаться предупредить в функции тела в первой строке – Dolly

ответ

1

Вы пытаетесь получить значение #c с этой линией

var c = document.getElementById("c"); 

но не возвращается с чем-то. Нет тегов с идентификатором c. Я думаю, что вы имеете в виду, чтобы это было

var c = document.getElementById("cHeat"); 
+0

Спасибо, я тоже понял это. – user2338361

0

Попробуйте посмотреть на этой функции обновленного пробега() ...

Вы отсутствовали текстовое поле и нужно, чтобы получить .value свойства. :)

function run() 
    { 
     var eq = document.getElementById("Eq").value; 
     var m = document.getElementById("m1").value; 
     var c = document.getElementById("cHeat").value; 
     var dT = document.getElementById("dT").value; 
     var ek = document.getElementById("Ek").value; 
     var m2 = document.getElementById("m2").value; 
     var v = document.getElementById("v").value; 

     console.log("eq = " + eq); 
     console.log("m = " + m); 
     console.log("c = " + c); 
     console.log("dT = " + dT); 
     console.log("ek = " + ek); 
     console.log("m2 = " + m2); 
     console.log("v = " + v); 


     if(eq.length == 0) 
     { 
      console.log('a'); 

      var result = parseFloat(m) * parseFloat(c) * parseFloat(dT); 
      alert(result); 

      eq = result.toString(); 

     } 
     if(c.length == 0) 
     { 
      console.log('b'); 

      c = eq/(m * dT); 
     } 

    } 
Смежные вопросы