Вывод результата расчета по Кнопке
Добрый день , никак не могу прикрутить кнопку, не хочет она и все рассчитывать по кнопке.
Сам Скрипт $(function () { $("#amount_slider").slider({ orientation: "horizontal", range: false, min: 10000, max: 2000000, value: 100000, step: 1000, slide: function (event, ui) { $("#amount").text(ui.value); calculatePayment() } }); $("#amount").text($("#amount_slider").slider("value")); $("#time_slider").slider({ orientation: "horizontal", range: false, min: 0, max: 64, value: 6, step: 6, slide: function (event, ui) { $("#time").text(ui.value); calculatePayment() } }); $("#time").text($("#time_slider").slider("value")); function calculatePayment() { var amount = $("#amount_slider").slider("value"); var interest = $("select#my_select").val() / 100; var time = $("#time_slider").slider("value") * 1; var rate = amount * (interest * Math.pow(1 + interest, time)) / (Math.pow(1 + interest, time) - 1); $("#result").text(rate.toFixed(2)); } calculatePayment() }); Это ХТМЛ, <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <script type="text/javascript" src="js/jquery-1.6.2.min.js"></script> <script type="text/javascript" src="js/jquery-ui-1.8.16.custom.min.js"></script> <script type="text/javascript" src="js/loan.js"></script> <link rel="stylesheet" href="css/jquery-ui-1.8.16.custom.css" /> <title>Кредитный калькулятор</title> </head> <body> <style type="text/css"> #amount_slider, #interest_slider, #time_slider { width: 200px; margin-top: 20px; float: left; } #amount, #interest, #time, #result { margin-left: 20px; margin-top: 20px; float: left; } #result { font-weight: bold; } .message { float: left; margin-top: 20px; font-family:Arial; width: 100px; } .clear { clear: both; } </style> <div> <div class="message">Сумма кредита</div><div id="amount_slider"></div><div id="amount"> </div> <div class="clear"></div> <select id="my_select" name="my_select"> <option value="12">Авто</option> <option value="10">Недвижимость</option> <option value="15">Экспресс</option> </select> <div class="clear"></div> <div class="clear"></div> <div class="message">Срок (мес)</div><div id="time_slider"></div> <div id="time"></div> <div class="clear"></div> <div class="message">Платеж в месяц</div><div id="result"></div> <div class="clear"></div> <br /> </body> </html> При таком коде работает все , тока результат сразу на странице отображается в Диве Result, он вызывается после каждого сдвига ползунка , calculatePayment() а также после расчета calculatePayment(), А мне надо что бы я выставил значения , нажал на кнопку и вышел расчет в том же Диве Result Делал кнопку добавлением в ХТМЛ <div onClick="calculatePayment();" style="cursor:hand;cursor:pointer;">Рассчитать</div> И соответственно в JS убирал calculatePayment() Но расчет не идет .. Пробовал так же Button прописовать в хтмл , c onClick="calculatePayment() нет результата, |
zeusrvp,
в строке 40 скрипта поставьте клик на див иначе функция calculatePayment из вне недоступна... ферштейн? |
Цитата:
Вас бы не затруднило привести пример , по данному коду, Допустим что я назначил Диву на который нажимают id = raschet тогда в JS мне надо var raschet = document.getElementById("raschet"); raschet.onclick = что тут мне вписать , пробывал разные варианты не проканало , может как о все это можно сократить ? Спасибо. |
zeusrvp,
raschet.onclick = calculatePayment; |
Цитата:
Сейчас вот так function calculatePayment() { var amount = $("#amount_slider").slider("value"); var interest = $("select#my_select").val() / 100; var time = $("#time_slider").slider("value") * 1; var rate = amount * (interest * Math.pow(1 + interest, time)) / (Math.pow(1 + interest, time) - 1); $("#result").text(rate.toFixed(2)); var raschet = Document.getElementById("raschet"); raschet.onclick = calculatePayment(); } Везде убрал calculatePayment() что бы сам не считал автоматом.. Диву в html так прописал <div id="raschet" style="cursor:hand;cursor:pointer;">Рассчитать</div></div> :cray: :( |
zeusrvp,
это типа строка 40 -- нетрогайте функцию -- ставьте ваши строки ниже функции |
zeusrvp,
:cray: $(function () { $("#amount_slider").slider({ orientation: "horizontal", range: false, min: 10000, max: 2000000, value: 100000, step: 1000, slide: function (event, ui) { $("#amount").text(ui.value); calculatePayment() } }); $("#amount").text($("#amount_slider").slider("value")); $("#time_slider").slider({ orientation: "horizontal", range: false, min: 0, max: 64, value: 6, step: 6, slide: function (event, ui) { $("#time").text(ui.value); // calculatePayment() } }); $("#time").text($("#time_slider").slider("value")); function calculatePayment() { var amount = $("#amount_slider").slider("value"); var interest = $("select#my_select").val() / 100; var time = $("#time_slider").slider("value") * 1; var rate = amount * (interest * Math.pow(1 + interest, time)) / (Math.pow(1 + interest, time) - 1); $("#result").text(rate.toFixed(2)); } //calculatePayment() var raschet = document.getElementById("raschet"); raschet.onclick = calculatePayment; }); |
Спасибо огромное все вышло ) , :)
Я вам просто кусок кода привел выше ) я не трогал весь код , Совсем заработался. ) Спасибо Вам еще раз. |
Подскажите , как по моему коду, сделать
Отображение Ползунков только при выборе Программы <select id="my_select" name="my_select"> <option value="12">Авто</option> <option value="10">Недвижимость</option> <option value="15">Экспресс</option> </select> И как сделать что бы при выборе например Авто Значения менялись Например так Если выбрано Авто , то $("#amount_slider").slider({ orientation: "horizontal", range: false, min: 100, max: 200, value: 100000, step: 10000, slide: function (event, ui) { $("#amount").text(ui.value); //calculatePayment() } }); $("#amount").text($("#amount_slider").slider("value")); Если выбрана Недвижомость то $("#amount_slider").slider({ orientation: "horizontal", range: false, min: 1000000, max: 2000000, value: 100000, step: 10000, slide: function (event, ui) { $("#amount").text(ui.value); //calculatePayment() } }); $("#amount").text($("#amount_slider").slider("value")); |
zeusrvp,
для начала - минимум 100 максимум 200 откудаже value стотысяч и шаг 10000 читайте медитируйте над документацией на Ползунок UI и может в раздел работа если быстро нужно? или пробуйте писать код ... Здравствуйте! Судя по вашему сообщению, вы ну совсем не знаете javascript. Освойте основы языка и вопрос отпадет сам, полностью или частично. А с чем не справитесь - поможем. На сайте javascript можно начать изучать с учебника, раздел Основы javascript. Возможно, вам также понадобится HTML - учебник есть, например, здесь: http://ru.html.net/tutorials/html/ Задавайте конкретные вопросы по ходу дела. |
Я тока изучаю JavaScript, извините
я 1С ник , Решил проблему с отображением при селекторах , так, $(document).ready(function(){ $("#amount_slider, #time_slider, #amount, #time").hide(); $("select#my_select").change(function(){ var valOpt = $(this).find('option:selected').val(); if(valOpt==0)$("#amount_slider, #time_slider, #amount, #time").hide(); if(valOpt==15){ $("#amount_slider, #time_slider, #amount, #time").show(); } if(valOpt==12){ $("#amount_slider, #time_slider, #amount, #time").show(); } if(valOpt==10)$("#amount_slider, #time_slider, #amount, #time").show(); }); });/*end ready*/ А вот выбор диапозона значений при выборе типа кредита не могу сделать , думал в сторону if else // |
zeusrvp,
http://jquery.page2page.ru/index.php5/%D0%9F%D0%BE%D0%BB%D0%B7%D1%83%D0%BD%D0%BE%D0%BA_U I внизу закладка свойства - читаем параметр max -- как узнать как изменить |
Спасибо . А выше код который для скрытия . Посоветуйте укоротить как нибудь если возможно .
|
zeusrvp,
если только в 1 случае скрыть зачем остальное проверять if(valOpt==0) hide else show |
Я так пробывал .. но у меня не пошло что то . Он весь скрылся .. попробую еще раз спасибо ..
По вашей ссылке почитал . Там нет того что я хочу . Зато там нашел оформление как делать . Спасибо .задача в том что бы при выборе например Авто. слайдер принимал значение мин и макс другие. Я вижу тока решение создания дополнильных слайдов amount и скрывать их по той же анологии что выше в коде . Тоесть я выбираю авто... и показывает див с id amount1 а остальные скрывает и так далее по анологии .. мысль есть а знаний не хватает . |
Цитата:
Цитата:
Цитата:
|
Наверное я запутал Вас .
Есть калькулятор. Первое его поле . Выбор типа кредита (автомобиль . Недвижтмость . И экспресс ) После того как поле выбрано . Открываются два параметра сумма и срок . ( эти два параметра как раз и есть ui slider ) в скрипте указываешь значение max и мин для параметра сумма и срок (amount и time ) после нажимаем Рассчитать и выполняется функция расчета и вывода на экран . Все что выше описал работает отлично ( с Вашей конечно помощью ) Но . Приведем пример Для кредита автомобиль условия например От 10 000 до 50000 Для экспресс от 20000 до 30000 И для недвижимость от 60000 до 100000 Так вот в слайде мы указываем параметры один раз для amount и time например amount у нас от 100000 до 500000 и все . Для всех типов кредитов мин и макс одинаковые . А мне необходимо что бы при выборе вида кредита менялся и слайд.. я пробыва через if else не вышло цепляет только первые значения .. И вот вопрос . Я как до компа дьберусь хочу проверить .. Создать дивы например . Avto . House и express.. для них прописать джеквери слайдер этот в скрипте и вызывать на экран при выборе .. у меня идея такая.. Какие есть у Вас ? |
Цитата:
|
Теоритически эти велечины и будут мин макс для конкретной переменной . Тока надо засунуть в код их стока скока мне надо и проверить как это все заработает )
|
Цитата:
|
Все уже работает ) спасибо . Все развернуто зато в теме получилось . Может кому то пригодится тема и поможет . Спасибо Вам . Не серчайте . Тяжеловато писать после 1с ... хороший форум . Хорошие люди )) :victory:
|
Смена диапазона ползунка slider jquery ui по выбору в селекторе
:write:
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>slider demo</title> <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/south-street/jquery-ui.css"> <style> body{ background: #FFCC00 } #time_slider, #amount_slider{ margin:45px; width:500px; height:12px; background-image:-webkit-gradient(linear,left,right,color-stop(0,#00FF7F),color-stop(1,#008000)); background-image:-ms-linear-gradient(left,#00FF7F,#008000); background-image:-o-linear-gradient(left,#00FF7F,#008000); background-image:-moz-linear-gradient(left,#00FF7F,#008000); background-image:-webkit-linear-gradient(left,#00FF7F,#008000); background-image:linear-gradient(to right,#00FF7F,#008000); border:#000000 1px solid; } #time_slider{ margin-top: 100px; } #show, #sh{ position:relative; width:60px; height:30px; top:5px; left:5px; display:block; float:left; text-shadow: 2px 1px 0px #00CC33; color:#008505; font-size: 24px; } .car:before{ content:""; background:no-repeat url(http://www.livegif.ru/Gallery/TECHNIKS/CARS/1T2.GIF); width:60px; height:45px; display:inline-block; position:relative; top:-5px; left:5px; } .house:before{ content:""; background:no-repeat url(http://www.livegif.ru/Gallery/DOM/buildings/HOUSE13.GIF); width:45px; height:45px; display:inline-block; position:relative; top:-25px; left:12px; } .money:before{ content:""; background:no-repeat url(http://www.livegif.ru/Gallery/OTHERS/MONEY/DOLLAR4.GIF); width:28px; height:45px; display:inline-block; position:relative; top:-17px; left:21px; } .time:before{ content:""; background:no-repeat url(http://www.livegif.ru/Gallery/DOM/CLOCKS/30R3.GIF); width:35px; height:45px; display:inline-block; position:relative; top:-38px; left:30px; } .ui-slider-handle{ font-size:14px; padding:2px 12px 5px 5px; box-shadow:0 0 1px rgba(0,0,0,0.3),0 3px 7px rgba(0,0,0,0.3),inset 0 1px rgba(255,255,255,1),inset 0 -3px 2px rgba(0,0,0,0.25); border-radius:5px; background:-ms-linear-gradient(#eeefef,#ffffff 10%); background:-o-linear-gradient(#eeefef,#ffffff 10%); background:-moz-linear-gradient(#eeefef,#ffffff 10%); background:-webkit-linear-gradient(#eeefef,#ffffff 10%); background:linear-gradient(#eeefef,#ffffff 10%); text-align:center; text-decoration:none; } .ui-slider-horizontal .ui-slider-handle{ top:-7px; } h3{ display: inline-block; text-align: center; text-shadow: 2px 1px 0px #00CC33; color:#008505; } #amount{ text-shadow: 2px 1px 0px #00CC33; color:#008505; font-size: 24px; width: 80px; } </style> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script> </head> <body> <select id="my_select" name="my_select"> <option value="12">Авто</option> <option value="10">Недвижимость</option> <option value="15">Экспресс</option> </select> <h3>10000 - 50000</h3> <div id="show" class="car">10000</div> <div id="amount_slider"></div> <input type="text" name="amount" id="amount"> <div id="sh" class="time">1</div> <div id="time_slider"></div> <script> $("#amount_slider").slider( { range: false, min: 10000, max: 50000, value: 15000, step: 1000, change: function(event, ui) { var offset = $(ui.handle).offset(); $("#show").html(ui.value).offset({top: offset.top-20, left: offset.left-18}) $("#amount").val(ui.value); }, slide: function(event, ui) { var offset = $(ui.handle).offset(); $("#show").html(ui.value).offset({top: offset.top-20, left: offset.left-18}); $("#amount").val(ui.value); } } ); $("#amount_slider").slider("option", "value", 10000); $("#my_select").change(function () { var min =[10000, 60000, 20000][this.selectedIndex], max =[50000, 100000, 30000][this.selectedIndex], cls =["car", "house", "money"][this.selectedIndex]; $("#amount_slider").slider("option", "max", max); $("#amount_slider").slider("option", "min", min); $("#amount_slider").slider("option", "value", min); $("#show").removeClass().addClass(cls); $("h3").text(min + " - " + max); } ) $("#time_slider").slider( { range: false, min: 0, max: 60, value: 12, step: 6, change: function(event, ui) { var offset = $(ui.handle).offset(); $("#sh").html(ui.value).offset({top: offset.top, left: offset.left-28})}, slide: function(event, ui) { var offset = $(ui.handle).offset(); $("#sh").html(ui.value).offset({top: offset.top, left: offset.left-28})} } ); $("#time_slider").slider("option", "value", 12); $("#amount").on("input", function () { //или "change" вместо "input" var min = $("#amount_slider").slider("option", "min"), max = $("#amount_slider").slider("option", "max"), val = +this.value; if(val >= min && val <= max)$("#amount_slider").slider("value", val); }); </script> </body> </html> |
Вы просто монстр javascript ) спасибо
|
Опять есть маленькая просьба , )
добавить вывод в текстовой поле , что бы при ввода значения менялся бегунок . по типу того как здесь http://webformyself.com/wp-content/u...emo/price.html слайдер крутится и его данные идут в поле .. где его ручками можно править , <input type="text" name="amount" id="amount"> В том примере что выше , пробовал впихнуть в мой код, и так и сяк , и див отдельный делал , пытаюсь понять код который на страничке с примером но увы чуток знаний не хватает . Вроде все верно делаю , и зараза не показывает. не вышло что то . |
zeusrvp,
добавлено изменение положения ползунка по вводу в input -- смотрите код выше |
Цитата:
Все так же было как у Вас , но не работало , У меня вот было $("#amount").html(abc2(ui.value)) $("#amount").val(ui.value); Abc2 это у меня преобразования функция.. в тысячные.. ну там 10000 отображается 10 000 Сделал так , из за дублирования .. $("#amount").html(abc2(ui.value)) $("#amount1").val(ui.value); и все встало на места ) спасибо Вам ) |
Цитата:
|
Часовой пояс GMT +3, время: 02:12. |