Помощь с кредитным калькулятором
Доброго времени суток.
Помогите переделать калькулятор, пожалуйста. Готов заплатить за помощь в пределах разумного :) Нужно сделать, чтоб поле "Гривен в день" было visible, если срок кредите до 30 дней, если больше 30, то это поле нужно сделать hide и вместо него показать поле "Гривен в месяц" (соотвественно поле "Гривен в месяц" hide, по срок кредита не будет больше 30). И чтоб в поле "Гривен в день" считало сумму в день (до 3000 гривен и до 30 дней без процентов ), а в поле "Гривен в месяц" сумму в месяц какую вносить. Посмотреть можно тут https://molnimoney.top/ Вот сам калькулятор $(function() { // start input tap $('input#money-range').on('input', function(e){ var min = e.target.min, max = e.target.max, val = e.target.value; $(e.target).css({ 'backgroundSize': (val - min) * 100 / (max - min) + '% 100%' }); }) .trigger('input'); $('input#data-range').on('input', function(e){ var min = e.target.min, max = e.target.max, val = e.target.value; $(e.target).css({ 'backgroundSize': (val - min) * 100 / (max - min) + '% 100%' }); }) .trigger('input'); $("input#money-range").on('input', function(){ $(this).prev().prev().val(this.value); var moneyPercent = this.value; var moneyCommon = (moneyPercent*0.1)/310; $("#money-display").text(parseInt(moneyCommon)); var innerData = parseInt(moneyPercent) + parseInt(moneyCommon); $("#common-display").text(parseInt(innerData)); }); $("input#data-range").on('input', function(){ $(this).prev().prev().val(this.value); var dataPercent = this.value; var moneyValue = $("input#money").val(); moneyData = (moneyValue*0.2)/500; var innerData = moneyData * dataPercent + parseInt(moneyValue); $("#common-display").text(parseInt(innerData)); // date $("#data-display").text(parseInt(dataPercent)); // end date }); $('#money-range').on('#money', function(){ $('#money').val($('#money-range').val()); }); $('#money').on('keyup', function(){ $('#money-range').val($('#money').val()); }); $('#data-range').on('#data', function(){ $('#data').val($('#data-range').val()); }); $('#data').on('keyup', function(){ $('#data-range').val($('#data').val()); }); }); $(function() { // 5 charachters limit var max_chars = 5; $('#money').keydown(function (e) { if ($(this).val().length >= max_chars) { $(this).val($(this).val().substr(0, max_chars)); } }); $('#money').keyup(function (e) { if ($(this).val().length >= max_chars) { $(this).val($(this).val().substr(0, max_chars)); } }); }); $(function() { // 4 charachters limit var max_chars = 4; $('#data').keydown(function (e) { if ($(this).val().length >= max_chars) { $(this).val($(this).val().substr(0, max_chars)); } }); $('#data').keyup(function (e) { if ($(this).val().length >= max_chars) { $(this).val($(this).val().substr(0, max_chars)); } }); }); <div class="calc-box"> <form action="/profile/" method="GET"> <div class="calc-top-content"> <div class="input-money"> <label for="money">Сумма</label> <input id="money" type="number" name="credit_size" min="100" max="50000" value="5000"> <span class="coin"><img src="" alt="Coin"></span> <input type="range" id="money-range" min="100" max="50000" step="100" value="3000"> <span class="min-money">100</span> <span class="max-money">50000</span> </div> <div class="input-data"> <label for="data">Срок кредита</label> <input id="data" type="number" name="credit_term" min="5" max="1825" maxlength="4" value="25"> <span class="coin">дней</span> <input type="range" min="5" id="data-range" max="1825" step="1" value="30"> <span class="min-data">5</span> <span class="max-data">1825</span> </div> <div class="send-button hidden-xs hidden-sm"> <button type="submit">Получить кредит</button> </div> </div> <div class="calc-bottom-data"> <div class="bottom-data"><p>Гривен в день: <span id="money-display">2</span><img src="" alt="Money"></p></div> <div class="bottom-data"><p>Вернуть через: <span id="data-display">25</span></p></div> <div class="bottom-data bt-flex-right"><p>Всего: <span id="common-display">5050</span><img src="" alt="Money"></p></div> </div> <div class="calc-bottom-data hidden-button-box hidden-lg hidden-md"> <div class="bottom-data bd-right"><button type="submit">Получить кредит</button></div> </div> </form> </div> |
Зачем столько объявлений $(function()? Код строк 74-84 и 92-102 идентичны, хватит одного обработчика.
PS. Не только эти обработчики "дублируются", но и другие тоже. А это что такое $('#money-range').on('#money'? |
Цитата:
Конкретно это строчка "$('#money-range').on('#money', function(){" передвигает ползунок если данные вводятся в поле input, вроде бы. Но это мои предположения, я в js не силен. |
Цитата:
Почему две кнопки отправления формы с одинаковой смысловой операцией? Зачем поля типа number дублируются полями типа range? Цитата:
|
Цитата:
Буду признателен, если сможете помочь. Бутылку готов оплатить:yes: |
Цитата:
Если же иметь range, то ручной ввод, это должно быть обычным текстовым полем. Ввод в любое из этих полей должен изменять значение в другом. На сервер при этом должно отправляться только текстовое поле. Две кнопки submit (и более) могут быть в форме, но в этом случае каждая из них имеет свой смысл и опознается сервером для интерпретации той или иной задачи. В вашем случае вторая кнопка бесполезный излишек. Разберитесь сначала с формой своей, чего надо, определив только необходимое. После этого можно думать об обслуживающем коде. Цитата:
|
Цитата:
Судя по всем тот кто писал этот код, тот и знает )) По поводу второй кнопки submit спасибо, даже не замечал, уже исправил. Знаю что код го*н и как переписать я не знаю. Но может подскажите как это реализовать? Нужно сделать, чтоб поле "Гривен в день" было visible, если срок кредите до 30 дней, если больше 30, то это поле нужно сделать hide и вместо него показать поле "Гривен в месяц" (соотвественно поле "Гривен в месяц" hide, по срок кредита не будет больше 30). И чтоб в поле "Гривен в день" считало сумму в день (до 3000 гривен и до 30 дней без процентов ), а в поле "Гривен в месяц" сумму в месяц какую вносить. Через if, else, как я понимаю и не знаю куда и что писать. Но js я совсем не знаю и времени разбираться если честно вообще нет. Поэтому и прошу помощи и готов предложить вознаграждение. |
То есть плевать, главное чтобы нечто отображалось с учетом дней, а весь имеющийся бардак так пусть и остается?
Я это к тому, что код самой формы никуда не годится. Не знаем JS, а бутстрап? А ведь кнопки отправления формы под бутстрап, каждая под свои разрешения, но одна до текста который вас единственно волнует, а вторая после него. Если это тоже у кого-то где-то выдрано и вы не понимаете о чем речь, верстка не под бутстрап, тогда да, можно удалить. А если нет, значит это же нужно решать иначе. Управление (ввод данных) вот таким интерфейсом это нормально - https://screenshots.firefox.com/MsW2ZgGGU9uF12xr/null ? Я могу согласиться что-то сделать, но никак не с таким набором. Кроме этого элементы типа number и range, это HTML5, то есть браузеры-инвалиды не будут поддерживать ваш калькулятор. Если вы не в курсе и этого, а поддержка нужна, то может плагин использовать, коих в сети найти не сложно? |
Цитата:
Человек который делал вёрстку и всё остальное пропал, меня попросили поправить, так как я один из тех кто создавал сайт. Если Вы можете переделать калькулятор, чтоб он корректно работал везде, было бы чудесно. Я ведь изначально написал что мне нужно реализовать, а не кто и что делал на данном сайте. Можете помочь - помогите, нет значит буду искать в другом месте и не буду тратить ни мое, ни Ваше время. |
Сделать можно, но нужно представлять среду в которой это будет работать. Я просто смотрю код формы, вижу что-то от бутстрапа, но в тоже время остальное скажем так не вяжется с ним, да еще упоминание, что это выдрано с другого сайта. А вот по ссылке https://molnimoney.top/ я вижу разумную форму, и там нет бустрапа.
Пишите по всем этим вопросам уже не тут, а в личку, нужна нормальная связь. PS. Изучил код по ссылке - весь бардак от того, что не во всех браузерах форма выглядит нормально (проблемы со стилями). Но лучше решить заменой поля number на обычное поле, так как в IE будет дополнительная проблема. |
Часовой пояс GMT +3, время: 03:24. |