2013-11-13 4 views
0

Я до сих пор довольно новичок в Javascript, и у меня возникают проблемы с правильной работой функции. Вот что у меня есть:Проблема с функцией Javascript для запуска

<script type='text/javascript'>   
    function GravityCalc (ratio, name) 
    { 
     Weight = getElementById('WeightBox').value * ratio; 
     document.getElementById('WeightText').innerHTML = 'You would weigh ' + weight + ' on ' + name; 
    } 
</script> 

Enter Weight: <input type='text' id='WeightBox' name='Weight'><br> 
<button onclick='GravityCalc(2.3,Jupiter)'>calculate</button> 
<div id='WeightText'> </div> 

Форма отображается отлично, но при нажатии кнопки ничего не происходит. Также следует отметить, что в конечном итоге параметры имени и отношения будут анализироваться с помощью PHP.

+2

Обратите внимание на [консоль ошибок JavaScript] (http://www.netmagazine.com/tutorials/javascript-debugging-beginners). Там вы увидите ошибки. (Подсказка: строки должны быть заключены в кавычки.) – JJJ

ответ

1

У вас есть несколько вещей неправильно ...

  1. 'Вес' должно быть 'вес'. JS чувствителен к регистру, и у вас это было в случае с Camel в одной строке и в случае с Pascal в другой строке.
  2. Вам необходимо использовать документ document.getElementById. Просто «getElementById» не работает во всех браузерах.
  3. Вам нужно объявить переменную «Вес».
  4. Значение в йот элемент хранится в виде строки или массив символов, если вы, таким образом, вам нужно разобрать его на междунар, как это так, parseInt(document.getElementById('WeightBox').value)

Вот мой JSFiddle ... http://jsfiddle.net/EH5j6/

function GravityCalc (ratio, name) 
     { 
      var weight; 
      weight = parseInt(document.getElementById('WeightBox').value) * ratio; 
      document.getElementById('WeightText').innerHTML = 'You would weigh ' + weight + ' on ' + name; 
     } 
+0

Второй аргумент 'weight' НЕ является необязательным. Введите '08' в некоторых браузерах, чтобы понять, почему. –

+0

Не уверен, что я понимаю, что вы только что сказали. –

+0

Justin, я считаю, что @NiettheDarkAbsol ссылается на параметр '' radix' в 'parseInt' '(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt). Опущение может привести к неожиданным результатам. – steveax

1

переменные javascript чувствительны к регистру! Ваш Ws не совпал. Я также настоятельно рекомендую использовать var, чтобы явно объявить ваши переменные.

var weight = getElementById('WeightBox').value * ratio; 
    document.getElementById('WeightText').innerHTML = 'You would weigh ' + weight + ' on ' + name; 

plus, как отметил комментатор, строки должны быть заключены в кавычки.

<button onclick='GravityCalc(2.3,"Jupiter")'>calculate</button> 
1

Убедитесь, что вы включаете javascript в начало страницы html.

function calc (ratio, name) { 
     var weight = document.getElementById('WeightBox').value * ratio; 
     document.getElementById('WeightText').innerHTML = "You would weigh " + weight + " on " + name; 
    } 

и изменить HTML быть:

Enter Weight: <input type='text' id='WeightBox' name='Weight'><br> 
<button onclick="calc(2.3, 'Jupiter')">calculate</button> 
<div id='WeightText'> </div> 
Смежные вопросы