2015-02-28 3 views
1

Я действительно новичок в программировании, и это заставило меня застопориться в течение нескольких дней. Я пытаюсь сделать действительно простой почтовый калькулятор. Функция сама по себе прекрасно работает, но когда я попытался связать ее с пользовательским вводом im, не получив вывода. Любая помощь с этим будет высоко оценена.Нет выхода из функции javascript

Вот что я пытался ..

<!DOCTYPE html> 


<html> 
    <head> 
     <title>postage calculator</title> 
     <meta charset="UTF-8"> 
     <meta name="viewport" content="width=device-width, initial-  scale=1.0"> 
    </head> 
    <body> 
     <div>Postage Calculator</div> 


<input id="amount" type="text" name="purchasePrice" placeholder="0" /> 
<input id="submit" type="submit" value="submit" /> 
<script type="text/javascript"> 

var amount = document.getElementById("amount"); 
var submit = document.getElementById("submit"); 

function aberdeen(){ 
    var weight = parseFloat(amount.value) || 0; 
       if(weight>0 && weight<500){ 

         return total = 3.50; 

       } 
       else if(weight<501 && weight<750){ 

         return total = 4.30; 
        } 
       else if(weight<751 && weight<1000){ 

         return total = 5.10; 
        } 
       else if(weight<1001 && weight<1250){ 

        return total = 5.90; 
       } 
        else if(weight<1251 && weight<1500){ 

         return total = 6.70; 
        } 
        else if(weight<1501 && weight<1750){ 

         return total = 7.50; 
        } 
        else if(weight<1751 && weight<2000){ 

         return total = 8.30; 
        } 
       else{ 
        return 0; 
       } 
      } 
submit.addEventListener("click", aberdeen, false); 
</script> 
    </body> 
      </html> 
+0

Где ваш код должен выдавать результат? Вы хотите отобразить значение «total»? – nicael

+0

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

+1

'вес <501 && вес <750'? Вероятно, вы имели в виду «вес> 500 && вес <= 750'? –

ответ

0

Вы должны иметь элемент, который будет иметь выход calulation как:

<div id="output"></div> 
var output = document.getElementById('output'); 
submit.addEventListener("click", function() { 
    output.innerHTML = aberdeen(); 
}, false); 
0

Вам нужно связать eventListeners после загрузки элементов, которые вы слушаете. Результат должен отображаться где-то. Он может отображаться в текстовом поле, HTML-элементе или просто в сообщении() -box. Я использовал текстовое поле в моем примере, используя элемент.

Также я создал рабочую версию кода:

<!DOCTYPE html> 


<html> 
    <head> 
     <title>postage calculator</title> 
     <meta charset="UTF-8"> 
     <meta name="viewport" content="width=device-width, initial-  scale=1.0"> 
    </head> 
    <body> 
     <div>Postage Calculator</div> 


<input id="amount" type="text" name="purchasePrice" placeholder="0" /> 
<input id="submit" type="submit" value="submit" /> 
<input id="userPays" type="text" name="userPays" /> 
<script type="text/javascript"> 



function aberdeen(amount){ 
    var weight = parseFloat(amount) || 0; 
    if(weight>0 && weight<500){ 

     return 3.50; 

    } 
    else if(weight<501 && weight<750){ 

     return 4.30; 
    } 
    else if(weight<751 && weight<1000){ 

     return 5.10; 
    } 
    else if(weight<1001 && weight<1250){ 

     return 5.90; 
    } 
    else if(weight<1251 && weight<1500){ 

     return total = 6.70; 
    } 
    else if(weight<1501 && weight<1750){ 

     return 7.50; 
    } 
    else if(weight<1751 && weight<2000){ 

     return 8.30; 
    } 
    else{ 
     return 0; 
    } 
} 



window.onload = function() { 
    var amount = document.getElementById("amount"); 
    var submit = document.getElementById("submit"); 
    var userPays = document.getElementById("userPays"); 

    function count(){ 
     userPays.value = aberdeen(amount.value); 
    } 

    submit.addEventListener("click", count, false); 
} 
</script> 
    </body> 
      </html> 

См демо по адресу: http://codepen.io/anon/pen/zxaaQe

Убедитесь, что ваша логика для расчета значений является правильным, как некоторые комментаторы предложили.

+0

Я не могу поверить, что даже не подумал о том, чтобы на самом деле поставить выход где-нибудь! Ошибка новичков! Спасибо всем за вашу помощь! – user3001902

+0

Все начинаются где-то;) Если мой ответ правильно решает вашу проблему, пожалуйста, не стесняйтесь проголосовать! – rnli

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