Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.10.2017, 09:36
Новичок на форуме
Отправить личное сообщение для theRusih Посмотреть профиль Найти все сообщения от theRusih
 
Регистрация: 20.10.2017
Сообщений: 6

Подстановка значений в фору калькулятора
Люди добрые и умные, помогите разобраться с калькулятором.
На каком-то сайте нашел калькулятор натяжных потолков, ну понравился он мне... Не могу понять откуда подставляются значения для расчета?
На локалке(компьютере) в скрипте меняю значения на свои
var prods = {
              pongs: 540,
              polyplast: 480,
              msd: 100,
              descor: 770,
              clipso: 1580,
              cerutti: 1630,
              photo: 1890
            };

, все работает. Вставляю к себе на сайт, данные подставляются с сайта исходника.

Содержимое scriptcalc.js
//передача данных калькулятора форме 
function generateOutCalc(){
    // Площадь, м2
    $("#outCalc-area").val($('#calculator2-area').val());
    // Углы, шт
    $("#outCalc-angles").val($('#calculator2-angles').val());
    // Светильники, шт
    $("#outCalc-fixtures").val($('#calculator2-fixtures').val());
    // Люстры, шт
    $("#outCalc-chandeliers").val($('#calculator2-chandeliers').val());

    // Производитель
    if( $('#manufacturer_pongs').is(':checked') ){
      $("#outCalc-manufacturer").val($('label[for="manufacturer_pongs"]').text());
    }

    if( $('#manufacturer_polyplast').is(':checked') ){
      $("#outCalc-manufacturer").val($('label[for="manufacturer_polyplast"]').text());
    }

    if( $('#manufacturer_msd').is(':checked') ){
      $("#outCalc-manufacturer").val($('label[for="manufacturer_msd"]').text());
    }

    if( $('#manufacturer_descor').is(':checked') ){
      $("#outCalc-manufacturer").val($('label[for="manufacturer_descor"]').text());
    }

    if( $('#manufacturer_photo').is(':checked') ){
      $("#outCalc-manufacturer").val($('label[for="manufacturer_photo"]').text());
    }
    // Сумма
    $("#outCalc-price").val($(".output_price span").text()+" Руб.");
  }

var tablinks = document.querySelectorAll(".main-tab-link");
  if (tablinks.length > 0) {
    for (var i = 0; i < tablinks.length; ++i) {
      tablinks[i].addEventListener('click', function () {

        var link = this;
        var targetID = link.dataset.targettabid;
        var target = document.querySelector("[data-tabid=\"" + targetID + "\"]");
        var tabs = target.parentNode.childNodes;
        //console.log(link, targetID, target, target.parentNode);
        //console.log(tabs);
        if (targetID && target) {
          $(tabs).addClass('hidden');
          $(link).parent().children().removeClass('active');
          target.classList.remove('hidden');
          link.classList.add('active');
        }
      });
    }
  }



  $('#calculator2-area').click(function(){ $('.calcbutton').click(); generateOutCalc();}); // Добавил ITF
  $('#calculator2-angles').click(function(){ $('.calcbutton').click(); generateOutCalc();}); // Добавил ITF
  $('#calculator2-fixtures').click(function(){ $('.calcbutton').click(); generateOutCalc();}); // Добавил ITF
  $('#calculator2-chandeliers').click(function(){ $('.calcbutton').click(); generateOutCalc();}); // Добавил ITF

  $('#calculator2-area')  .bind('keyup mouseup', function () {
    $('.calcbutton').click(); generateOutCalc();          
  });
  $('#calculator2-angles')  .bind('keyup mouseup', function () {
   $('.calcbutton').click(); generateOutCalc();           
 });
  $('#calculator2-fixtures')  .bind('keyup mouseup', function () {
   $('.calcbutton').click(); generateOutCalc();          
 });
  $('#calculator2-chandeliers')  .bind('keyup mouseup', function () {
   $('.calcbutton').click(); generateOutCalc();           
 });




  $('#manufacturer_pongs').click(function(){ $('.calcbutton').click(); generateOutCalc();}); // Добавил ITF
  $('#manufacturer_polyplast').click(function(){ $('.calcbutton').click();generateOutCalc(); }); // Добавил ITF
  $('#manufacturer_msd').click(function(){ $('.calcbutton').click(); generateOutCalc();}); // Добавил ITF
  $('#manufacturer_descor').click(function(){ $('.calcbutton').click(); generateOutCalc();}); // Добавил ITF
  $('#manufacturer_photo').click(function(){ $('.calcbutton').click(); generateOutCalc();}); // Добавил ITF


  $('.calculator2-control').click(function () {

    var input = this.parentNode.querySelector('.calculator2-input');
    console.log(input);
    if (this.classList.contains('plus')) {
      input.value++;
    } else if (this.classList.contains('minus') && input.value > 0) {
      input.value--;
    }
    $('.calcbutton').click(); // Добавил ITF
    generateOutCalc();// Добавил ITF
  });

/*on calc*/
$(function () {

  var calcbutton = document.querySelector('.calcbutton');
  if (calcbutton) {

    var calcDiscount = document.querySelector('.calc-discount');

    $('.calcbutton').click(function () {
      $(".output_price_none").fadeIn(1000);
      $(".feedback_zamer").fadeIn(1000);
    });

    calcbutton.addEventListener('click', function () {
      var loc = $(location).attr('href') ;
      if (( loc == "" ) || (loc ==  "")){
           var prods = {
              pongs: 540,
              polyplast: 480,
              msd: 100,
              descor: 770,
              clipso: 1580,
              cerutti: 1630,
              photo: 1890
            };
      }
      else{
           var prods = {
              pongs: 540,
              polyplast: 480,
              msd: 100,
              descor: 770,
              clipso: 1580,
              cerutti: 1630,
              photo: 1890
            };
      }
     
      var corners = document.querySelector('input[name="angles"]').value;
      if (corners > 4) {

      if (( loc == "" ) || (loc ==  "")){
        var cornerprice = (corners - 4) * 180;
      }
      else{
        var cornerprice = (corners - 4) * 180;
      }

      }
      else {

        cornerprice = 0;
      }
      if (( loc == "" ) || (loc ==  "")){
      var lightprice = 280 * document.querySelector('input[name="fixtures"]').value;
      var lampprice = 430 * document.querySelector('input[name="chandeliers"]').value;
    }
    else{
      var lightprice = 280 * document.querySelector('input[name="fixtures"]').value;
      var lampprice = 430 * document.querySelector('input[name="chandeliers"]').value;
    }
      var prodprice = prods[document.querySelector('input[name="manufacturer"]:checked').value] * document.querySelector('input[name="area"]').value;

      var price = prodprice + cornerprice + lightprice + lampprice,
      span = document.querySelector('.output_price > span'),
      input = document.querySelector('.output_price > input');

      if (span) {

        span.innerHTML = price;
      }

      if (input) {

        input.value = price;
      }
      $('.personal_link.hidden').slideDown();
      updateDiscount(price);
    });
}


Файлы с которыми работает калькулятор:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>

 
<script type="text/javascript" src="js/scriptcalc.js"></script>
Самое интересное что в файле scriptcalc.js изменения сделанные мной работают локально а на сайте нет, даже если все удалить в этом файле, на сайте калькулятор работает со значениями с сайта исходника...
Ответить с цитированием
  #2 (permalink)  
Старый 20.10.2017, 09:36
Новичок на форуме
Отправить личное сообщение для theRusih Посмотреть профиль Найти все сообщения от theRusih
 
Регистрация: 20.10.2017
Сообщений: 6

Вот код калькулятора:
<div style="" class="calculation calculation-prices item-text block flex">
  <h2>Калькулятор стоимости натяжных потолков с установкой</h2>
  <form class="flex" action="" method="post">
    <div class="calculation_block flex">
      <div class="manufacturer_block flex">
        <div class="item manufacturer">1.Производитель:</div>
        <div>
          <input type="radio" name="manufacturer" value="pongs" id="manufacturer_pongs">
          <label for="manufacturer_pongs">Pongs ПВХ (Германия)</label>
        </div>
       <!--  <div>
         <input type="radio" name="manufacturer" value="polyplast" id="manufacturer_polyplast">
         <label for="manufacturer_polyplast">Polyplast ПВХ (Бельгия)</label>
       </div> -->
        <div>
          <input type="radio" name="manufacturer" value="msd" id="manufacturer_msd" checked>
          <label for="manufacturer_msd">MSD ПВХ (Китай)</label>
        </div>
        <div>
          <input type="radio" name="manufacturer" value="descor" id="manufacturer_descor">
          <label for="manufacturer_descor">Descor Ткань (Германия)</label>
        </div>
        <div>
          <input type="radio" name="manufacturer" value="photo" id="manufacturer_photo">
          <label for="manufacturer_photo">Фотопечать</label>
        </div>
      </div>
      <div class="indent">
        <div class="item room">2.Помещение:</div>
        <div class="calculator2-input-wrapper clearfix">
          <label for="calculator2-area" class="calculator2-input-label">Площадь, м2</label>
          <div class="calculator2-control minus">−</div>
          <input type="number" value="0" min="0" name="area" id="calculator2-area" class="calculator2-input" required>
          <div class="calculator2-control plus">+</div>
        </div>
        <div class="calculator2-input-wrapper clearfix">
          <label for="calculator2-angles" class="calculator2-input-label">Углы, шт</label>
          <div class="calculator2-control minus">−</div>
          <input type="number" value="0" min="0" name="angles" id="calculator2-angles" class="calculator2-input" required>
          <div class="calculator2-control plus">+</div>
        </div>
      </div>
      <div class="indent">
        <div class="item lighting">3.Освещение:</div>
        <div class="calculator2-input-wrapper clearfix">
          <label for="calculator2-fixtures" class="calculator2-input-label">Светильники, шт</label>
          <div class="calculator2-control minus">−</div>
          <input type="number" value="0" min="0" name="fixtures" id="calculator2-fixtures" class="calculator2-input" required>
          <div class="calculator2-control plus">+</div>
        </div>
        <div class="calculator2-input-wrapper clearfix">
          <label for="calculator2-chandeliers" class="calculator2-input-label">Люстры, шт</label>
          <div class="calculator2-control minus">−</div>
          <input type="number" value="0" min="0" name="chandeliers" id="calculator2-chandeliers" class="calculator2-input" required>
          <div class="calculator2-control plus">+</div>
        </div>
      </div>
    </div>
    <div class="calcbutton button" style="display:none;">Стоимость потолка составит: (нажмите чтобы узнать)</div>
    <div class="output_price_none" style="display:none; text-align:center;">
      <div class="title_output"></div>
      <div class="output_price">
        <span>0</span> рублей
        <input name="price" value="0" type="text" style=" display: none">
      </div>
      <div>
       
          <h5 class="calc-prices-header" style="color:#58068e;"><span>Если введённые вами параметры верны,</span> то это окончательная стоимость натяжных потолков с установкой!</h5>
      </div>
    </div>
  </form>
</div>
Ответить с цитированием
  #3 (permalink)  
Старый 20.10.2017, 09:46
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от theRusih Посмотреть сообщение
var loc = $(location).attr('href') ;
      if (( loc == "" ) || (loc ==  "")){
           var prods = {
              pongs: 540,
              polyplast: 480,
              msd: 100,
              descor: 770,
              clipso: 1580,
              cerutti: 1630,
              photo: 1890
            };
      }
      else{
           var prods = {
              pongs: 540,
              polyplast: 480,
              msd: 100,
              descor: 770,
              clipso: 1580,
              cerutti: 1630,
              photo: 1890
            };
      }
Зачем это масло масляное?
Ответить с цитированием
  #4 (permalink)  
Старый 20.10.2017, 09:47
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от theRusih
Вставляю к себе на сайт, данные подставляются с сайта исходника.
Значит где-то меняются значения того объекта...
Ответить с цитированием
  #5 (permalink)  
Старый 20.10.2017, 10:22
Новичок на форуме
Отправить личное сообщение для theRusih Посмотреть профиль Найти все сообщения от theRusih
 
Регистрация: 20.10.2017
Сообщений: 6

Сообщение от ksa Посмотреть сообщение
Зачем это масло масляное?
Я не знаю, так в исходнике есть. Я сильный чайник в этом...
Ответить с цитированием
  #6 (permalink)  
Старый 20.10.2017, 10:26
Новичок на форуме
Отправить личное сообщение для theRusih Посмотреть профиль Найти все сообщения от theRusih
 
Регистрация: 20.10.2017
Сообщений: 6

Сообщение от ksa Посмотреть сообщение
Значит где-то меняются значения того объекта...
Куда смотреть, подскажите. я думал в коде калькулятора самого, но там и намека на ссылку нету. Что интересно на хостинге работает калк с пустым файлом scriptcalc.js но удалив его, перестает работать???
Ответить с цитированием
  #7 (permalink)  
Старый 20.10.2017, 10:30
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

theRusih, у нас есть раздел "Работа", предложите некую сумму за решение вашей проблемы, может и желающие помочь вам найдется...
Ответить с цитированием
  #8 (permalink)  
Старый 20.10.2017, 10:33
Новичок на форуме
Отправить личное сообщение для theRusih Посмотреть профиль Найти все сообщения от theRusih
 
Регистрация: 20.10.2017
Сообщений: 6

Вот файлы:
Вложения:
Тип файла: zip Calc.ZIP (70.9 Кб, 1 просмотров)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт калькулятора NafNafgt Работа 3 24.11.2016 05:39
Подстановка значений в input Laroux jQuery 2 15.09.2015 18:53
Подстановка значений dalexra51 Events/DOM/Window 3 16.12.2014 19:02
Подключение случайных значений Nyam Общие вопросы Javascript 13 26.04.2014 20:46
Подстановка значений селекта solomon2 Элементы интерфейса 4 06.05.2012 17:24