2013-06-02 6 views
0

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

<script type="text/javascript"> 
function intcal() { 
var pr=document.getElementById("P"); 
var ra=document.getElementById("r"); 
var ti=document.getElementById("t"); 
var interest=pr*ra*ti; 
document.write(interest); 
} 
</script> 
<h1> Principal </h1> 
<Input type="number" id="P" name="Principal" Size="16"> 
<h1> Rate </h1> 
<Input type="number" id="r"name="Rate" Size="16"> 
<h1> Time </h1> 
<Input type="number" id="t" name="Time" Size="16"> 
<input type="button" onClick=intcal() value="Calculate"> 

ответ

3

Несколько проблем нет. getElementById возвращает элемент DOM. Вы должны получить значение элемента, который является строкой, а затем преобразовать его в ряд (или брось):

var pr = +document.getElementById("P").value; 
var ra = +document.getElementById("r").value; 
var ti = +document.getElementById("t").value; 

+ отбрасывает строку в число. Теперь ваше умножение должно работать.

Также вы забыли свои котировки вокруг вызова функции на мероприятии onclick. Ох и читайте, почему document.write is bad practice.

Редактировать: Как сказал Берги, умножение также отличает число, но в любом случае, поскольку у вас есть переменные, вы, вероятно, хотите присвоить им номера.

+0

Умножение будет отливать строки в любом случае :-) – Bergi

+0

@Bergi: Правильно ... О, хорошо, больше информации для ОП. – elclanrs

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