2013-07-27 2 views
2

Только что начал изучать Javascript сегодня, и я застрял. Страница только перезагружается, когда я отправляю. Я помещаю. Значение в неправильном месте? Может быть, какая-то другая ошибка?Как получить значение из ввода формы в переменную

<script type="text/javascript"> 
     function Calculate() { 
     var volume = document.getElementById('volume').value; 
     var carbonation = document.getElementById('carbonation').value; 
     var temperature = document.getElementById('temperature').value; 

     var sucrose = (15.195 * volume * (carbonation - 3.0378 + (0.050062 * temperature) - (0.00026555 * (temperature * temperature))))/28.4; 
     var dextrose = sucrose + (sucrose * 0.15); 

     document.write('<div id="result">You need ' + math.round(dextrose * 100)/100 + ' ounces of dextrose</div>');} 
    </script> 
    <form> 
    <input id="volume" type="text"> 
    <input id="carbonation" type="text"> 
    <input id="temperature" type="text"> 
    <input type="submit" onclick="Calculate();" value="Calculate"> 
    </form> 
+0

Что вы ожидаете? –

+0

Не используйте submit. Я думаю, что type = "button" - это то, что вам нужно. – user2553780

+0

Я ожидаю, что в документе document.write будет отображаться на странице. Страница только обновляется:/ – Dan

ответ

1

Передача формы произойдет до того, как функция будет выполнена, поэтому страница будет перезагружаться, а не запускать вашу функцию при нажатии этой кнопки.

Вместо этого используйте <input type="button">.

+0

Вот и все! Спасибо огромное! – Dan

3

Вам нужно положить

return false; 

В конце вашей функции так, что страница не обновляется.

Как это

function Calculate() { 
    // All Code here... 

} 

Это предотвратит форму от их представления.

И вместо того, чтобы присоединять событие щелчка необходимо использовать отправить событие

Добавить ID в виде

<form id="myForm"> 

Listen, когда форма была отправлена ​​

var myForm = document.getElementById('myForm'); 
myForm.onsubmit = Calculate; 

И измените вашу кнопку на

<input type="submit" value="Calculate"> 
+0

Может быть? Конечно, ему нужно это сделать. – Barmar

+0

Да, возможно, ваше право. – iConnor

+0

@rid, если форма не идет никуда, то почему она говорит в вопросе, что страница перезагружается? если вы не применяете «действие» к форме, она просто использует текущую страницу. – iConnor

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