12.01.2016, 10:15
|
Новичок на форуме
|
|
Регистрация: 12.01.2016
Сообщений: 9
|
|
Настройка калькулятора
Добрый день, на сайте есть простенький калькулятор, который не работает(. Прошу помощи в настройке, так как сам в js совсем не соображаю. Заранее Спасибо тем, кто не останется равнодушным и поможет!
Задача такова:
1. При выборе глубины скважины * тип трубы = Стоимость скважины
2. При выборе типа обустройства = Стоимость обустройства
3. Стоимость скважины + Стоимость обустройства = Итого
jQuery(function(){
var ts = new Date(2016, 3, 19,23,0,0,0),
newYear = false;
jQuery('.countdown').countdown({
timestamp : ts
});
});
$(function() {
$( ".sliderIn" ).slider({
max: 150,
min: 0,
step:1,
value:0,
range:'min',
slide: function( event, ui ) {
$( ".inCount" ).val( ui.value );
var a = parseFloat($("#inCount").val());
var b = parseFloat($("#outCount").val());
var c = parseFloat($(".radioList input:checked").val());
var a1 = a*c
var b1 = a1+a-b
var c1 = b1*12
var a11 = a.toString().replace(/(\d{1,3})(?=(?:\d{3})+$)/g, '$1 ')
var b11 = b1.toString().replace(/(\d{1,3})(?=(?:\d{3})+$)/g, '$1 ')
var c11 = c1.toString().replace(/(\d{1,3})(?=(?:\d{3})+$)/g, '$1 ')
jQuery("#inMon").text(a11+' руб.');
jQuery("#outMon").text(b11+' руб.');
jQuery("#sumMon").text(c11+' руб.');
jQuery(".invested .interBox").height(a/20000);
jQuery(".received .interBox").height(b1/20000);
}
});
$( ".inCount" ).val( $( ".sliderIn" ).slider( "value" ) );
});
$(function() {
$( ".sliderOut" ).slider({
max: 450000,
min: 0,
step:1000,
value:50000,
range:'min',
slide: function( event, ui ) {
$( ".outCount" ).val( ui.value );
var a = parseFloat($("#inCount").val());
var b = parseFloat($("#outCount").val());
var c = parseFloat($(".radioList input:checked").val());
var a1 = a*(c/100)
var b1 = a1+a-b
var c1 = b1*12
var a11 = a.toString().replace(/(\d{1,3})(?=(?:\d{3})+$)/g, '$1 ')
var b11 = b1.toString().replace(/(\d{1,3})(?=(?:\d{3})+$)/g, '$1 ')
var c11 = c1.toString().replace(/(\d{1,3})(?=(?:\d{3})+$)/g, '$1 ')
jQuery("#inMon").text(a11+' руб.');
jQuery("#outMon").text(b11+' руб.');
jQuery("#sumMon").text(c11+' руб.');
jQuery(".invested .interBox").height(a/20000);
jQuery(".received .interBox").height(b1/20000);
}
});
$( ".outCount" ).val( $( ".sliderOut" ).slider( "value" ) );
});
$(function() {
var a = parseFloat($("#inCount").val());
var b = parseFloat($("#outCount").val());
var c = parseFloat($(".radioList input:checked").val());
var a1 = a*(c/100)
var b1 = a1+a-b
var c1 = b1*12
var a11 = a.toString().replace(/(\d{1,3})(?=(?:\d{3})+$)/g, '$1 ')
var b11 = b1.toString().replace(/(\d{1,3})(?=(?:\d{3})+$)/g, '$1 ')
var c11 = c1.toString().replace(/(\d{1,3})(?=(?:\d{3})+$)/g, '$1 ')
jQuery("#inMon").text(a11+' руб.');
jQuery("#outMon").text(b11+' руб.');
jQuery("#sumMon").text(c11+' руб.');
jQuery(".invested .interBox").height(a/20000);
jQuery(".received .interBox").height(b1/20000);
});
jQuery(".calcBox input").on("change, click", function(){
var a = parseFloat($("#inCount").val());
var b = parseFloat($("#outCount").val());
var c = parseFloat($(".radioList input:checked").val());
var a1 = a*(c/100)
var b1 = a1+a-b
var c1 = b1*12
var a11 = a.toString().replace(/(\d{1,3})(?=(?:\d{3})+$)/g, '$1 ')
var b11 = b1.toString().replace(/(\d{1,3})(?=(?:\d{3})+$)/g, '$1 ')
var c11 = c1.toString().replace(/(\d{1,3})(?=(?:\d{3})+$)/g, '$1 ')
jQuery("#inMon").text(a11+' руб.');
jQuery("#outMon").text(b11+' руб.');
jQuery("#sumMon").text(c11+' руб.');
jQuery(".invested .interBox").height(a/20000);
jQuery(".received .interBox").height(b1/20000);
Ниже отрывок из index.php может тоже пригодится.
<section class="howToEarn">
<div class="res">
<h1>Калькулятор <span class="din_bold">скважины</span></h1>
<div class="calculator"><form>
<div class="calcBox">
<span class="cbTitle">Введите исходные данные</span>
<div class="cbLine">
<span class="cblTitle">Глубина скважины, м.</span>
<div>
<input class="inCount" id="inCount" name="in" type="text" value="0">
<div class="sliderBox bbox sliderIn"></div>
<div class="priceList"> <span>0 м.</span> <span>50 м.</span> <span>100 м.</span> <span>150 м.</span></div>
</div>
</div>
<div class="procBox">
<span class="pbTitle">Тип трубы:</span>
<div class="radioList">
<label><input class="niceRadio" type="radio" name="proc" value="1600" id="proc_0" checked>Металл ⌀133</label>
<label><input class="niceRadio" type="radio" name="proc" value="1900" id="proc_1">Металл ⌀133 + Пластик ⌀117</label>
</div>
</div>
<br>
<br>
<div class="procBox">
<span class="pbTitle">Тип обустройства:</span>
<div class="radioList">
<label><input class="niceRadio" type="radio" name="proc" value="35500" id="proc_0" checked>Летний </label>
<label><input class="niceRadio" type="radio" name="proc" value="100000" id="proc_2">Металлический кессон </label>
</div>
</div>
</div>
<input type="hidden" name="user_data[url]" value="landing_opt_real" />
</form></div>
<div class="investedReceived">
<div class="invested">
<div class="interBox"><div class="textBox">Стоимость скважины<span id="inMon">20 000 руб.</span></div></div>
</div>
<div class="received">
<div class="interBox"><div class="textBox">Стоимость обустройства<span id="outMon">53 000 руб.</span></div></div>
</div>
<div class="clear"></div>
<p class="month12">Итого:</p>
<span class="summ" id="sumMon">636 000 руб.</span>
<a class="popup_t want but din_bold" href="javascript:void(0)">Хочу заказать</a>
|
|
12.01.2016, 11:27
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
enable209,
name и id у строк 19, 20 и 28,29 должно быть разным!!!
да и сами блоки procBox должны же хоть чем-то отличатся?
ваши обрывки кода плохо подходят для локализации кода, хорошо хоть задачу лаконично сформулировали.
и нафига столько $(function() и jQuery(function() хватило бы одной таблетки на весь код!
|
|
12.01.2016, 11:55
|
Новичок на форуме
|
|
Регистрация: 12.01.2016
Сообщений: 9
|
|
Сообщение от рони
|
enable209,
name и id у строк 19, 20 и 28,29 должно быть разным!!!
да и сами блоки procBox должны же хоть чем-то отличатся?
ваши обрывки кода плохо подходят для локализации кода, хорошо хоть задачу лаконично сформулировали.
и нафига столько $(function() и jQuery(function() хватило бы одной таблетки на весь код!
|
Это делал не я) так что ответить на вопрос "нафига?" не могу к сожалению. Не могли бы вы мне помочь, откорректировав данный код так как это должно быть и что для этого требуется от меня? могу целиком скинуть main.js и index.php
|
|
12.01.2016, 12:24
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
slider ui калькулятор для скважины
enable209,
смотрите внимательно весь код!!!
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<link rel="stylesheet" href="http://code.jquery.com/ui/1.11.0/themes/smoothness/jquery-ui.css">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<style type="text/css">
.sliderIn{
margin:20px;
width:500px;
height:5px;
}
.ui-slider-handle{
border-radius:50%;
position:relative;
font-size:14px;
display:block;
}
.ui-slider-horizontal .ui-slider-handle{
top:0.5em;
background:transparent;
border-radius:0%;
width:0;
height:0;
border-top:none;
text-decoration:none;
border-left:7px solid transparent;
border-right:7px solid transparent;
border-bottom:14px solid red;
}
.ui-slider-horizontal .ui-slider-handle:last-of-type{
background:transparent;
border-bottom:none;
border-top:14px solid red;
top:-1.2em;
}
.ui-slider-horizontal .ui-slider-handle:last-of-type:focus {
outline: 0;
}
.active {
background-color: #0000CD;
color: #FFFFFF;
}
.priceList span {
border-radius: 8px;
padding: 2px 8px;
cursor: pointer;
border: 1px solid #0000CD
}
</style>
</head>
<body><section class="howToEarn">
<div class="res">
<h1>Калькулятор <span class="din_bold">скважины</span></h1>
<div class="calculator"><form>
<div class="calcBox">
<span class="cbTitle">Введите исходные данные</span>
<div class="cbLine">
<span class="cblTitle">Глубина скважины, м.</span>
<div>
<input class="inCount" id="inCount" name="in" type="text" value="0">
<div class="sliderBox bbox sliderIn"></div>
<div class="priceList"> <span>0 м.</span> <span>50 м.</span> <span>100 м.</span> <span>150 м.</span></div>
</div>
</div>
<div class="procBox">
<span class="pbTitle">Тип трубы:</span>
<div class="radioList">
<label><input class="niceRadio" type="radio" name="tube" value="1600" checked>Металл ⌀133</label>
<label><input class="niceRadio" type="radio" name="tube" value="1900" >Металл ⌀133 + Пластик ⌀117</label>
</div>
</div>
<br>
<br>
<div class="procBox">
<span class="pbTitle">Тип обустройства:</span>
<div class="radioList">
<label><input class="niceRadio" type="radio" name="proc" value="35500" checked>Летний </label>
<label><input class="niceRadio" type="radio" name="proc" value="100000" >Металлический кессон </label>
</div>
</div>
</div>
<input type="hidden" name="user_data[url]" value="landing_opt_real" />
</form></div>
<div class="investedReceived">
<div class="invested">
<div class="interBox"><div class="textBox">Стоимость скважины : <span id="inMon">20 000 руб.</span></div></div>
</div><br>
<div class="received">
<div class="interBox"><div class="textBox">Стоимость обустройства : <span id="outMon">53 000 руб.</span></div></div>
</div>
<div class="clear"></div>
<p class="month12">Итого:</p>
<span class="summ" id="sumMon">636 000 руб.</span>
<a class="popup_t want but din_bold" href="javascript:void(0)">Хочу заказать</a>
</div>
</div>
</section>
<script>
jQuery(function() {
var c = {
0: 0,
50: 1,
100: 2,
150: 3
},
a = $(".priceList span");
$(".sliderIn").slider({
max: 150,
min: 0,
step: 1,
value: 0,
range: "min",
slide: function(f, b) {
$(".inCount").val(b.value);
var d = b.value * $(".procBox:first input:checked").val(),
e = +$(".procBox:last input:checked").val();
$("#inMon").text(d + " руб.");
$("#outMon").text(e + " руб.");
$("#sumMon").text(d + e + " руб.");
a.removeClass("active");
void 0 !== c[b.value] && a.eq(c[b.value]).addClass("active")
},
change: function(f,
b) {
$(".inCount").val(b.value);
var d = b.value * $(".procBox:first input:checked").val(),
e = +$(".procBox:last input:checked").val();
$("#inMon").text(d + " руб.");
$("#outMon").text(e + " руб.");
$("#sumMon").text(d + e + " руб.");
a.removeClass("active");
void 0 !== c[b.value] && a.eq(c[b.value]).addClass("active")
}
});
$(".sliderIn").slider("option", "value", 0);
$(".calculator input").on({
change: function() {
var a = +$(".inCount").val() || 0;
$(".inCount").val(a);
$(".sliderIn").slider("option",
"value", a)
}
});
a.on({
click: function() {
var c = a.index(this);
$(".sliderIn").slider("option", "value", 50 * c)
}
})
});
</script>
</body>
</html>
|
|
12.01.2016, 12:45
|
Новичок на форуме
|
|
Регистрация: 12.01.2016
Сообщений: 9
|
|
Я правильно понял, что все то, что все позиции относящиеся к калькулятору, которые у меня есть, нужно заменить на те, которые вы прислали?
|
|
12.01.2016, 12:48
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
enable209,
и html и css тоже
|
|
12.01.2016, 13:22
|
Новичок на форуме
|
|
Регистрация: 12.01.2016
Сообщений: 9
|
|
Перенес вроде все верно) но вот, что получилось (скрин во вложении) и еще, при переключении кнопки радио с одной позиции на другую, стоимость сразу не меняется, а начинает меняться только при передвижении ползунка(
Последний раз редактировалось enable209, 12.01.2016 в 13:35.
|
|
12.01.2016, 13:46
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
enable209,
строка 154 пост 4 измените change на click
у вас куча ошибок в html, лишние теги или незакрытые собственные закрывающие теги типа <p/> вместо </p> , скрипты после body ... и т.д.
|
|
12.01.2016, 13:51
|
Новичок на форуме
|
|
Регистрация: 12.01.2016
Сообщений: 9
|
|
Сообщение от рони
|
enable209,
строка 154 пост 4 измените change на click
у вас куча ошибок в html, лишние теги или незакрытые собственные закрывающие теги типа <p/> вместо </p> , скрипты после body ... и т.д.
|
Пожалуйста, помогите исправить, сам я уж точно не справлюсь(
change на click изменил, стало все ок) Спасибо)
|
|
12.01.2016, 14:06
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
enable209,
https://validator.w3.org/nu/?doc=htt...m-groups.ru%2F
убрать дубликаты name
Error: Duplicate attribute
<input type="text" name="tel" placeholder="Телефон" class="bbox picted tel" name="phone">
Self-closing syntax
исправить <p />
Stray start tag
перенести скрипт - поставить перед боди а не после
Unclosed element и End tag и Stray end tag -- лишние или незакрытые или неоткрытые теги -- убрать переставить или закрыть , остальное не страшно.
|
|
|
|