Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.01.2016, 10:15
Новичок на форуме
Отправить личное сообщение для enable209 Посмотреть профиль Найти все сообщения от enable209
 
Регистрация: 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>
Ответить с цитированием
  #2 (permalink)  
Старый 12.01.2016, 11:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

enable209,
name и id у строк 19, 20 и 28,29 должно быть разным!!!
да и сами блоки procBox должны же хоть чем-то отличатся?
ваши обрывки кода плохо подходят для локализации кода, хорошо хоть задачу лаконично сформулировали.

и нафига столько $(function() и jQuery(function() хватило бы одной таблетки на весь код!
Ответить с цитированием
  #3 (permalink)  
Старый 12.01.2016, 11:55
Новичок на форуме
Отправить личное сообщение для enable209 Посмотреть профиль Найти все сообщения от enable209
 
Регистрация: 12.01.2016
Сообщений: 9

Сообщение от рони Посмотреть сообщение
enable209,
name и id у строк 19, 20 и 28,29 должно быть разным!!!
да и сами блоки procBox должны же хоть чем-то отличатся?
ваши обрывки кода плохо подходят для локализации кода, хорошо хоть задачу лаконично сформулировали.

и нафига столько $(function() и jQuery(function() хватило бы одной таблетки на весь код!
Это делал не я) так что ответить на вопрос "нафига?" не могу к сожалению. Не могли бы вы мне помочь, откорректировав данный код так как это должно быть и что для этого требуется от меня? могу целиком скинуть main.js и index.php
Ответить с цитированием
  #4 (permalink)  
Старый 12.01.2016, 12:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

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>
Ответить с цитированием
  #5 (permalink)  
Старый 12.01.2016, 12:45
Новичок на форуме
Отправить личное сообщение для enable209 Посмотреть профиль Найти все сообщения от enable209
 
Регистрация: 12.01.2016
Сообщений: 9

Я правильно понял, что все то, что все позиции относящиеся к калькулятору, которые у меня есть, нужно заменить на те, которые вы прислали?
Ответить с цитированием
  #6 (permalink)  
Старый 12.01.2016, 12:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

enable209,
и html и css тоже
Ответить с цитированием
  #7 (permalink)  
Старый 12.01.2016, 13:22
Новичок на форуме
Отправить личное сообщение для enable209 Посмотреть профиль Найти все сообщения от enable209
 
Регистрация: 12.01.2016
Сообщений: 9

Перенес вроде все верно) но вот, что получилось (скрин во вложении) и еще, при переключении кнопки радио с одной позиции на другую, стоимость сразу не меняется, а начинает меняться только при передвижении ползунка(
Изображения:
Тип файла: jpg Безымянный.jpg (71.6 Кб, 4 просмотров)

Последний раз редактировалось enable209, 12.01.2016 в 13:35.
Ответить с цитированием
  #8 (permalink)  
Старый 12.01.2016, 13:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

enable209,
строка 154 пост 4 измените change на click
у вас куча ошибок в html, лишние теги или незакрытые собственные закрывающие теги типа <p/> вместо </p> , скрипты после body ... и т.д.
Ответить с цитированием
  #9 (permalink)  
Старый 12.01.2016, 13:51
Новичок на форуме
Отправить личное сообщение для enable209 Посмотреть профиль Найти все сообщения от enable209
 
Регистрация: 12.01.2016
Сообщений: 9

Сообщение от рони Посмотреть сообщение
enable209,
строка 154 пост 4 измените change на click
у вас куча ошибок в html, лишние теги или незакрытые собственные закрывающие теги типа <p/> вместо </p> , скрипты после body ... и т.д.
Пожалуйста, помогите исправить, сам я уж точно не справлюсь(

change на click изменил, стало все ок) Спасибо)
Ответить с цитированием
  #10 (permalink)  
Старый 12.01.2016, 14:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

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 -- лишние или незакрытые или неоткрытые теги -- убрать переставить или закрыть , остальное не страшно.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доработать скрипт калькулятора. webmanss Элементы интерфейса 0 19.10.2015 21:23
Профессиональная настройка Яндекс Директ и Google Adwords Alex.Directolog Работа 0 28.08.2015 20:30
Не работает скрипт калькулятора в FF 4.0 YaVolodya Firefox/Mozilla 2 01.11.2013 11:04
Админка для калькулятора Antond Элементы интерфейса 1 19.11.2012 15:08
Имеется скрипт калькулятора - не пойму почему не работает tishkovav AJAX и COMET 4 15.02.2012 15:21