Плагин Jquery для сложных расчетов
В течение прошлой недели многие из вас мне очень помогли с моей первой попыткой написать приложение с нуля. Спасибо от всего сердца моего кода обезьяна сердце!
Мне нужно добавить функцию подсчета очков в мое приложение для оценки фантазийного футбола. Ниже приведена страница результатов с раскрывающимися списками для функции расчета (но без фактической функции расчета):
Пользователь сможет выбрать, сколько очков будет стоить каждый показатель (или приращение показателя), а затем нажать кнопку "Получить результаты", и итоговые значения появятся в столбце TFP (столбец tan).
Таким образом, используя настройки, показанные на скриншоте, формула будет выглядеть так:
1(Pass_Yds / 20) + (4 * Pass_TD) + 1(Rush_Yds / 10) + (6 * Rush_TD) + (0 * Int) = TFP
Я посмотрел на плагин калькулятора jQuery, который, как я полагаю, мне нужно использовать, но я понятия не имею, как выполнить сложный (по крайней мере для меня) тип вычисления, показанный выше.
2 ответа
У меня та же проблема, когда мой клиент просит меня создать какую-то сложную форму расчета, поэтому я решил написать свой собственный плагин, который вы можете найти здесь https://github.com/ikhsan017/calx
просто нужно записать формулу вычисления в атрибут data-формула и присвоить $ char каждой переменной
1(Pass_Yds / 20) + (4 * Pass_TD) + 1(Rush_Yds / 10) + (6 * Rush_TD) + (0 * Int)
Предположим, что у вас есть все элементы ввода со связанным идентификатором
<form id="test">
Pass Yds : <input id="Pass_Yds" /><br />
Pass TD : <input id="Pass_TD" /><br />
Rush Yds : <input id="Rush_Yds" /><br />
Rush TD : <input id="Rush_TD" /><br />
Int : <input id="Int" /><br />
<!--- skip -->
Result : <input id="TFP" data-formula="1*($Pass_Yds / 20) + (4 * $Pass_TD) + 1*($Rush_Yds / 10) + (6 * $Rush_TD) + (0 * $Int)" />
</form>
Надеюсь этот плагин пригодится:)
В зависимости от конкретного HTML. Я не уверен в том, как вы используете материал points / yds, но следующее поможет вам начать:
$('#btnUpdate').click(function() { // get this all after user clicks button
var ptspassyrds = parseInt($('#ptspassyrds').val());
var ptspassyrdsamt = parseInt($('#ptspassydsamt').val());
$('#stats tr').each(function() {
var passyds = parseInt($('td:eq(2)',this).text());
var paddtds = parseInt($('td:eq(3)',this).text());
var interceptions = parseInt($('td:eq(4)',this).text());
// etc
var tfp = (ptspassyrds / ptspassyrdsamt) + (4*passtds); //etc depending on exactly what you need to do
$('td:eq(8)').text(tfp);
});
});