2014-09-14 3 views
0

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

Я не уверен, есть ли что-нибудь, что я пропустил, или любую ошибку, которую я сделал где-то, что я просто не могу найти, но любая помощь будет замечательной!

http://jsfiddle.net/Shibi/rcpfm4e2/

<div id="page-wrap"> 
<div id="todo" ng-controller="TodoCtrl"> 
     <h2>Net Salary Calculator</h2> 

    <div class="form-horizontal"> 
     <form id="calculator"> 
      <p>Income: 
       <input id="income" /> 
      </p> 
      <select id="states" onchange="changetax(this)"> 
       <option>Choose state</option> 
       <option value="4.0">Alabama</option> 
       <option value="0.0">Alaska</option> 
       <option value="5.60">Arizona</option> 
       <option value="6.50">Arkansas</option> 
      </select> 
      <div id="tax"></div> 
      <hr /> 
      <p>Taxed Amount: 
       <input id="tax" disabled="disabled" /> 
      </p> 
      <p>Total: 
       <input id="total" disabled="disabled" /> 
      </p> 
      <p> 
       <input type="submit" /> 
      </p> 
     </form> 
    </div> 
</div> 

function changetax($this) { 

var e = document.getElementById("states"); 
var selectedState = e.options[e.selectedIndex].text; 
var x = document.getElementById("states"); 
var selectedTax = x.options[x.selectedIndex].value; 
$("#tax").text($this.value ? ("Income Tax: " + selectedState + " " + selectedTax + "%") : ""); 
} 

function calculate() { 

var income = $('#income').val(); 
var tax = Number(income) * Number(selectedTax/100); 
var total = Number(income) - (Number(tax) * Number(income)); 

$('#tax').val(tax.toFixed(2)); 
$('#total').val(total.toFixed(2)); 
$('#calculator').submit(calculate); 
return false; 
} 
+0

вы не назначили какое-либо событие или функцию передачи запроса или любая ссылка o r действие к форме, что вы ожидаете от этого? –

+0

@Shibi ... Вы пытаетесь вызвать 'calculate' из' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' и '' '' '' '' '' '' '' '' когда вы уже используете 'jquery'? –

ответ

0

Пожалуйста, проверьте это фиксируется на:

http://jsfiddle.net/rcpfm4e2/1/

<div id="page-wrap"> 
    <div id="todo" ng-controller="TodoCtrl"> 
      <h2>Net Salary Calculator</h2> 

     <div class="form-horizontal"> 
      <form id="calculator"> 
       <p>Income: 
        <input id="income" /> 
       </p> 
       <select id="states" onchange="changetax(this)"> 
        <option>Choose state</option> 
        <option value="4.0">Alabama</option> 
        <option value="0.0">Alaska</option> 
        <option value="5.60">Arizona</option> 
        <option value="6.50">Arkansas</option> 
       </select> 
       <div id="taxSummary"></div> 
       <hr /> 
       <p>Taxed Amount: 
        <input id="tax" disabled="disabled" /> 
       </p> 
       <p>Total: 
        <input id="total" disabled="disabled" /> 
       </p> 
       <p> 
        <input type="button" id="calculateBtn" value="Calculate"/> 
       </p> 
      </form> 
     </div> 
    </div> 
</div> 


$('#states').on('change', function() { 

    var selectedStateText = $("#states :selected").text(); 
    var selectedStateValue = $("#states").val(); 

    $("#taxSummary").text(selectedStateValue ? ("Income Tax: " + selectedStateText + " " + selectedStateValue + "%") : ""); 
}); 


$("#calculateBtn").on('click', function() { 

    var taxValue = $("#states").val(); 
    var income = $('#income').val(); 
    var tax = Number(income) * Number(taxValue/100); 
    var total = Number(income) - (Number(tax)); 

    $('#tax').val(tax.toFixed(2)); 
    $('#total').val(total.toFixed(2)); 
    //$('#calculator').submit(calculate); 
    return false; 
}); 
+0

Добро пожаловать – codebased

+0

Спасибо за помощь! ^^ – Shibi