Написание простого приложения на javascript.

17.06.2017 at 20:37


На примере кредитного калькулятора посмотрим, как создать клиентское приложение на javascript.

Начнем с разметки. Нам понадобятся три инпута для ввода параметров, подписи к ним, кнопка для запуска расчета и таблица для отображения результатов.

        <div class="debt_calc_param_container"><span class="debt_calc_param">Сумма кредита</span><input id="debt_calc_amount" /></div>
        <div class="debt_calc_param_container"><span class="debt_calc_param">Процентная ставка</span><input id="debt_calc_percent" /></div>
        <div class="debt_calc_param_container"><span class="debt_calc_param">Срок кредита в месяцах</span><input id="debt_calc_period" /></div>
        <button id="debt_calc_button">Рассчитать</button>
        <table id="debt_calc_paymentcalendar" border="1" bordercolor="black" cellpadding="10"></table>

Можно приступать к написанию кода. Начнем с обработчика кнопки расчета. Назовем его calculate_debt. Сначала считаем значения параметров

var sum = parseFloat($('#debt_calc_amount').val());
var months = parseInt($('#debt_calc_period').val());
var percent = parseFloat($('#debt_calc_percent').val() / 100);

Теперь рассчитаем месячный платеж, сумму выплат и переплату по кредиту

var monthly_percent = percent / 12;
var monthly_payment = round_payment(sum * (monthly_percent + monthly_percent / (Math.pow(monthly_percent + 1,
	months) - 1)));
var total_payment = months * monthly_payment;
var over_payment = total_payment - sum;

Можно приступать к выводу результатов. Сначала очищаем таблицу и добавляем в нее шапку. Очистка таблицы нужна для того, чтобы при повторном запуске расчета результаты не добавились к предыдущим, а перезаписали их.

$('#debt_calc_paymentcalendar').empty();
$('#debt_calc_paymentcalendar').append('<tr><th>№</th><th>Дата платежа </th><th>Платеж</th></tr>');

В цикле выводим по строке на каждый платеж

for (var i = 1; i <= months; i++) {
	date = addMonths(date, 1);
	$('#debt_calc_paymentcalendar').append('<tr><td>' + i +
		'</td><td>' + date.toISOString().slice(0, 10) +
		'</td><td align="right">' + monthly_payment.toFixed(2) +
		'</td></tr>')
}

Добавляем сумму выплат и переплату по кредиту

$('#debt_calc_paymentcalendar').append('<tr><td colspan="2">Сумма платежей</td><td align="right">' +
	total_payment.toFixed(2) + '</td></tr>');
$('#debt_calc_paymentcalendar').append('<tr><td colspan="2">Переплата</td><td align="right">' +
	over_payment.toFixed(2) + '</td></tr>');

Теперь при загрузке страницы навешиваем обработчик на кнопку и прячем таблицу, чтобы не мешалась. Так же стоит обернуть весь код в self-invoking функцию. И в конец функции calculate_debt добавляем показ таблицы.

(function () {
    function calculate_debt() {
        ...
        $('#debt_calc_paymentcalendar').show();
    }

    $(document).ready(function () {
        $('#debt_calc_button').bind("click", calculate_debt);
        $('#debt_calc_paymentcalendar').hide();
    });
})();

Все, можно пользоваться.