Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Помогите доработать скрипт хештега

Имеется данный скрипт, который видит любые добавленные слова как в Твиттере и делает их ссылками, но проблема в том, что если ставить например #Белгород, то все нормально, а если прописывать @Ник, то данный скрипт оставляет за собой какие-то дополнительные коды в виде span или div Пожалуйста помогите доработать скрипт. Вот где стоит данное
<script type="text/javascript">$('.hashLinks').each(function(){var html = $(this).html().replace(/(#[\S]+)/g,'<a href="/search/$1" class="tagHref" title="$1">$1</a>').replace(/(@[\S]+)/g,'<a href="/index/8-0-$1" class="tagHref" title="$1">$1</a>');$(this).html(html).each(function(){$('.tagHref').each(function(){var href = $(this).attr('href').replace(/#/, '%23').replace(/@/,'');var title = $(this).attr('title').replace(/(#+)/, '');$(this).attr('href',href).attr('title',title);});});});</script>
Ответ: Прописываю так и он видит закрывающий тег и добавляет его
<div class="hashLinks">$MESSAGE$</div>
Вопрос: Доработать скрипт на проверку введенных данных

Доброго времени суток!
Помогите доработать скрипт. Нужно чтобы выполнялась проверка трех полей ввода.
Проверить надо чтобы поля были заполнены, не было букв и нельзя было бы вводить отрицательное число!
Заранее спасибо!
Ответ:
Сообщение от xMaserati
Проверить надо чтобы поля были заполнены, не было букв и нельзя было бы вводить отрицательное число!
Javascript
1
2
3
4
5
var patt = new RegExp("^[1-9]([0-9])*$");
var res = patt.test("Что проверять будем?");
if (!res) {
//Введен запрещенный символ
}
Вопрос: Помогите доработать скрипт с редиректом

Добрый день всем!!! Нужна помощь.
На сайте стоит такой скрипт :

<script type="text/javascript">
var srch;
document.forms['forma'].onsubmit = function(){
srch = document.getElementById('search').value.substr(0, 12);
//alert(srch);
window.location = 'http://tdock.ru/'+srch;

return false;
};
</script>

Служит он для обрезки первых двенадцати символов запроса пользователя и превращения их в URL типа символов.
Необходимо доработать его так, чтобы URL получался по типу
символов
Кто поможет разобраться?
Ответ:
Сообщение от Константин2211
но скрипт должен производить поиск именно по /kl1na486j7k6
Какой скрипт, ты думаешь тот который ты привел здесь, осуществляет поиск что-ли, ты не думал что поиск осуществляется серверным скриптом, а этот скрипт только передает ему данные?
Вопрос: Скрипт пересыльщик RSS

Помогите доработать скрипт пересылки RSS
Этот скрипт работает с таблицей где на ящейке A1 фид, А2 Тема письма, А3 дата последнего поста.
Скрипт отправляет только Тему , ссылку и дату поста.
Помогите скрипт доделать, чтоб он отправлял и тело RSS записи.
Все это крутится на гугл драйв.

function checkFeeds() {
  const mailAddress = "mail@mail.me";
  const feedColumn = 1;
  const mailSubjectColumn = 2;
  const lastPublicationDateColumn = 3
  
  var row = 2;
  var sheet = SpreadsheetApp.getActiveSheet();
  while (true) {
    var currentRow = row++;
    
    var feed = sheet.getRange(currentRow, feedColumn).getValue();
    if (feed == "") {
      break;
    }
    
    var mailSubject = sheet.getRange(currentRow, mailSubjectColumn).getValue();
    var mailBody = "";
    var lastPublicationDateCell = sheet.getRange(currentRow, lastPublicationDateColumn);
    
    var feedContent = UrlFetchApp.fetch(feed).getContentText();
    var doc = Xml.parse(feedContent, false);
    
    var root = doc.getElement();
    if (root == null) {
      break;
    }
    
    var rootName = root.getName().getLocalName();
    if (rootName == "rss") {
      var rssVersion = root.getAttribute("version");
      if (rssVersion == null) {
        break;
      }
      
      if (rssVersion.getValue() == "2.0") {
        mailBody = parseRssFeed(root, mailSubject, lastPublicationDateCell);
      }
    } else if (rootName == "feed") {
      mailBody = parseAtomFeed(root, mailSubject, lastPublicationDateCell);
    }
    
    if (mailBody != "") {
      GmailApp.sendEmail(mailAddress, mailSubject, mailBody);
    }
  }
}

function parseRssFeed(root, mailSubject, lastPublicationDateCell) {
  var maxPubDateText = lastPublicationDateCell.getValue();
  var maxPubDate = "2000-01-01T00:00:00Z";
  if (maxPubDateText != "") {
    maxPubDate = maxPubDateText;
  }
      
  var channel = root.getElement("channel");
  
  var mailBody = "";
  var items = channel.getElements("item")
  var curMaxPubDate = maxPubDate;
  for (var i in items) {
    var dateText = items[i].getElement("pubDate").getText();
    var pubDate = Utilities.formatDate(new Date(dateText), "GMT", "yyyy-MM-dd'T'HH:mm:ss'Z'");
    
    if (pubDate > maxPubDate) {
      if (pubDate > curMaxPubDate) {
        curMaxPubDate = pubDate
      }
      mailBody += "\nЗаголовок: " + items[i].getElement("title").getText();
      mailBody += "\nСсылка: " + items[i].getElement("link").getText();
      mailBody += "\nДата публикации: " + pubDate;
      mailBody += "\n";
    }
  }

  lastPublicationDateCell.setValue(curMaxPubDate);
  return mailBody;
}

function parseAtomFeed(root, mailSubject, lastPublicationDateCell) {
  var maxPubDateText = lastPublicationDateCell.getValue();
  var maxPubDate = "2000-01-01T00:00:00Z";
  if (maxPubDateText != "") {
    maxPubDate = maxPubDateText;
  }
      
  var mailBody = "";
  var entries = root.getElements("entry")
  var curMaxPubDate = maxPubDate;
  for (var i in entries) {
    var pubDate = entries[i].getElement("updated").getText();
    
    if (pubDate > maxPubDate) {
      if (pubDate > curMaxPubDate) {
        curMaxPubDate = pubDate
      }
      mailBody += "\nЗаголовок: " + entries[i].getElement("title").getText();
      mailBody += "\nСсылка: " + entries[i].getElement("link").getAttribute("href").getValue();
      mailBody += "\nДата публикации: " + pubDate;
      mailBody += "\n";
    }
  }

  lastPublicationDateCell.setValue(curMaxPubDate);
  return mailBody;
}
Ответ: Скрипт немного переделал.
function checkFeeds() {
  const mailAddress = "my@gmail.com";
  const feedColumn = 1;
  const mailSubjectColumn = 2;
  const lastPublicationDateColumn = 3
  
  var row = 2;
  var sheet = SpreadsheetApp.getActiveSheet();
  while (true) {
    var currentRow = row++;
    
    var feed = sheet.getRange(currentRow, feedColumn).getValue();
    if (feed == "") {
      break;
    }
    
    var mailSubject = sheet.getRange(currentRow, mailSubjectColumn).getValue();
    var mailBody = "";
    var lastPublicationDateCell = sheet.getRange(currentRow, lastPublicationDateColumn);
    
    var feedContent = UrlFetchApp.fetch(feed).getContentText();
    var doc = Xml.parse(feedContent, false);
    
    var root = doc.getElement();
    if (root == null) {
      break;
    }
    
    var rootName = root.getName().getLocalName();
    if (rootName == "rss") {
      var rssVersion = root.getAttribute("version");
      if (rssVersion == null) {
        break;
      }
      
      if (rssVersion.getValue() == "2.0") {
        mailBody = parseRssFeed(root, mailSubject, lastPublicationDateCell);
      }
    } else if (rootName == "feed") {
      mailBody = parseAtomFeed(root, mailSubject, lastPublicationDateCell);
    }
    
    if (mailBody != "") {
      GmailApp.sendEmail(mailAddress, mailSubject, mailBody);
    }
  }
}

function parseRssFeed(root, mailSubject, lastPublicationDateCell) {
  var maxPubDateText = lastPublicationDateCell.getValue();
  var maxPubDate = "2000-01-01T00:00:00Z";
  if (maxPubDateText != "") {
    maxPubDate = maxPubDateText;
  }
      
  var channel = root.getElement("channel");
  
  var mailBody = "";
  var items = channel.getElements("item")
  var curMaxPubDate = maxPubDate;
  for (var i in items) {
    var dateText = items[i].getElement("pubDate").getText();
    var pubDate = Utilities.formatDate(new Date(dateText), "GMT", "yyyy-MM-dd'T'HH:mm:ss'Z'");
    
    if (pubDate > maxPubDate) {
      if (pubDate > curMaxPubDate) {
        curMaxPubDate = pubDate
      }
      mailBody += "\nЗаголовок: " + items[i].getElement("title").getText();
      mailBody += "\nСсылка: " + items[i].getElement("link").getText();
      mailBody += "\nОписание: " + items[i].getElement("description").getText();
      mailBody += "\nДата публикации: " + pubDate;
      mailBody += "\n";
    }
  }

  lastPublicationDateCell.setValue(curMaxPubDate);
  return mailBody;
}

function parseAtomFeed(root, mailSubject, lastPublicationDateCell) {
  var maxPubDateText = lastPublicationDateCell.getValue();
  var maxPubDate = "2000-01-01T00:00:00Z";
  if (maxPubDateText != "") {
    maxPubDate = maxPubDateText;
  }
      
  var mailBody = "";
  var entries = root.getElements("entry")
  var curMaxPubDate = maxPubDate;
  for (var i in entries) {
    var pubDate = entries[i].getElement("updated").getText();
    
    if (pubDate > maxPubDate) {
      if (pubDate > curMaxPubDate) {
        curMaxPubDate = pubDate
      }
      mailBody += "\nЗаголовок: " + entries[i].getElement("title").getText();
      mailBody += "\nСсылка: " + entries[i].getElement("link").getAttribute("href").getValue();
      mailBody += "\nОписание: " + entries[i].getElement("description").getText();
      mailBody += "\nДата публикации: " + pubDate;
      mailBody += "\n";
    }
  }

  lastPublicationDateCell.setValue(curMaxPubDate);
  return mailBody;
}


Как удалить
mailBody += "\nОписание: " + entries[i].getElement("description").getText();
как написать ког ,чтоб в тексте этого сообщения он удалил HTML теги
Вопрос: Не получается доработать скрипт калькулятора последнего дня отпуска

Есть такой скрипт:
function takeEndDateOtpusk(UsDate, countDays) {
			var dateFromUserDate = new Date(UsDate);// Дата пользователя
			var timeFrom1970ToUserDate = dateFromUserDate.getTime();
			var ruleCountDays = countDays - 1;
			var dateFrom1970ToCountDays = new Date(1000 * 60 * 60 * 24 * ruleCountDays);
			var millSecToCountDays = dateFrom1970ToCountDays.getTime();
			var millSecItog = timeFrom1970ToUserDate + millSecToCountDays;
			var dateFromNowToCountDays = new Date(millSecItog);
			var arrayWeek = ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"];
			var beginDay = arrayWeek[dateFromUserDate.getDay()];// День недели даты пользователя
			var endDay = arrayWeek[dateFromNowToCountDays.getDay()];// День недели конца отпуска
			var beginDate = dateFromUserDate.getDate();// Число даты пользователя
			var endDate = dateFromNowToCountDays.getDate();// Число конца отпуска
			var arrayMonth = ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"];
			var beginMonth = arrayMonth[dateFromUserDate.getMonth()];// Месяц даты пользователя
			var endMonth = arrayMonth[dateFromNowToCountDays.getMonth()]; // Месяц конца отпуска
			var beginYear = dateFromUserDate.getFullYear();// Год даты пользователя
			var endYear = dateFromNowToCountDays.getFullYear();// Год конца отпуска
			var beginDateToWrite = beginDay + " " + beginDate + " " + beginMonth + " " + beginYear;
			document.write("Если начальная дата отпуска: <strong>" + beginDateToWrite + "</strong>, а " + "Количество дней отпуска: <strong>" + countDays + "</strong>, то последний день отпуска: <br />");
			document.write("День недели: <strong>" + endDay + "</strong><br />");
			document.write("Число: <strong>" + endDate + "</strong><br />");
			document.write("Месяц: <strong>" + endMonth + "</strong><br />");
			document.write("Год: <strong>" + endYear + "</strong><br />");
		}
		var UserDate = prompt("Введите дату начала отпуска в формате: ГГГГ,ММ,ДД");
		var UserDays = prompt("Введите число от 1 до 52");
		if (UserDays <= 0) {
			alert("Такого количества дней не существует!");
		}
		else if (UserDays > 52) {
			alert("Вы указали слишком большое количество дней!");
		}
		else takeEndDateOtpusk(UserDate, UserDays);


Сначала пользователь вводит начальную дату отпуска, затем вводит количество дней отпуска, скрипт выдает конечную дату отпуска. Этот скрипт можно было бы считать готовым, но в гос.учреждениях красные (праздничные) календарные дни из периода отпуска выбрасываются (т.е. праздничные дни считаются выходными, а период отпуска увеличивается на это количество дней), вот в этом то и вся проблема. Не могу придумать как выделить отпускной диапазон дат и учесть в скрипте красные календарные дни, чтобы если какое-то количество красных календарных дней попало в отпускной период, то количество (введенных пользователем) дней отпуска должно автоматически увеличится на количество красных календарных дней перед выводом конечной даты.

Буду очень признателен помощи.
Ответ: рони,
а год в праздниках зачем?
Вопрос: Доработать скрипт плавного исчезновение блока

здравствуйте.
Помогите пожалуйста до работать скрипт смены блоков. Хотелось бы чтобы чтобы с помощью данного скрипта они плавно появлялись хотя бы.

Сам скрипт
<script>
$elements = $('.rotating-content').find('span');
$elements
   .not(':first-child')
   .addClass('visually-hidden')
   .css('opacity', 0);

setInterval(function() {
   $elements.filter(':not(.visually-hidden)').fadeTo('slow', 0, function() {
      $next = $(this).addClass('visually-hidden').next();
      if ($next.length === 0) {
         $next = $elements.first(); 
      }
      $next.removeClass('visually-hidden').fadeTo('slow', 1);
   });
}, 9000);</script>


Стили его
Код:
<style>
.rotating-content
{
height:215px;
}
.visually-hidden
{clip:rect(0 0 0 0);
height:1px;
margin:-1px;
overflow:hidden;
padding:0;
position:absolute;
width:1px
}</style>
Ну и само тело
Код:
<div class="rotating-content">

<span>БЛОК 1</span>
<span>БЛОК 2</span>
<span>БЛОК 3</span>

</div>
Ответ: Четко... Огромное спасибо ... Где не спрашивал постоянно пинали ...
Вопрос: Помогите доработать скрипт всплывающего окна

Есть такой скрипт. Как сделать так, чтобы с помощью него окошко открылось например, через одну минуту и если можно то появлялось один раз в день. Спасибо!!!

<script type="text/javascript"> 
$("document").ready(function() {     

     var HeightDocument = $(document).height(); 
     var WidthDocument = $(document).width(); 
     var HeightScreen = $(window).height(); 

     $(".modal_bg").css({"width":WidthDocument,"height":HeightDocument}); 
     $(".modal_bg").fadeIn(100); 
     $(".modal_bg").fadeTo("slow",0.8); 

     var Top_modal_window = $(document).scrollTop() + HeightScreen/2-$(".modal_window").height()/2; 
     $(".modal_window").css({"top":Top_modal_window+"px","display":"block"}); 
     $("body").css({"overflow":"hidden"}); 
     return false; 
  }); 
     function nafig() { 
     $(".modal_bg, .modal_window").hide(); 
     $("body").css({"overflow":"auto"}); 
     } 
</script>
<div class="modal_bg" onClick="nafig();"></div> 
<div class="modal_window" align=center> 
<div align=right id="close"><img src="http://guest.brigada31.ru/ajax/close_popup.png" onClick="nafig()"><br /><br /></div> 
Содержимое окна
</div>
Ответ: А вы сделайте на подписку поле типа email и кнопку типа submit чтобы кто хочет и подписался. Можно даже красиво дать текст рядом: Оставайтесь на режущей кромке наших новостей!

Или вам сразу с самого начала надо сделать как делают идиоты? Чтобы от негодования никто не подписался, ага. Кстати за попапы роботы снижают рейтинг.
Вопрос: Нужно доработать скрипт калькулятора

Всем доброго времени суток!

Очень прошу помощи в решении следующей задачи (в js я полный ноль, могу лишь прикрутить к сайту готовый скрипт, чуть-чуть подредактировать, а вот чтобы самой написать...)
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
<div class="box-filter">
                            <br>
                             <label class="style8"> <strong>Тип ремонта</strong>&nbsp;</label>
                            &nbsp;<select class="parametrs" id="type-direction">
                            <option value="1">Выбрать</option>
                            <option value="2">"Эконом класс"</option>
                            <option value="3">"Стандарт класс"</option>
                            <option value="4">"Класс Люкс"</option>
                             </select>
                                <div class="form-group">
                                    <label class="style8"><strong>Площадь помещения</strong></label>
                                    <div class="row">
                                        <div class="style20" style="padding-top: 14px;">
                                            <strong>В метрах:</strong></div>
                                        <div class="col-md-3"><input type="text" name="roof" class="form-control" id="roof" value="" placeholder="0"></div>
                                    </div>
                                </div>
                               
                                <div class="form-group">
                                    <label class="style8"><strong>Предполагаемое половое покрытие&nbsp; </strong></label>
                                    &nbsp;<select class="parametrs" id="pol">
                                        <option data-param="1">Выбрать</option>
                                        <option data-param="1">Линолиум</option>
                                        <option data-param="1.05">Ламинат</option>
                                        <option data-param="1.08">Паркетная доска</option>
                                        <option data-param="1.1">Керамическая плитка</option>
                                    </select>
                                </div>
                                <div class="form-group">
                                    <label class="style8"><strong>Отделка стен</strong></label>&nbsp;&nbsp;
                                    <select class="parametrs" id="steny">
                                        <option data-param="1">Выбрать</option>   
                                        <option data-param="1">Обои</option>
                                        <option data-param="1.1">Жидкие обои</option>
                                        <option data-param="1.02">Пластиковые панели</option>
                                        <option data-param="1.01">Окраска</option>
                                    </select>
                                </div>
                                <div class="form-group">
                                    <label class="style8"><strong>Материал потолочного покрытия&nbsp; </strong></label>
                                    &nbsp;<select class="parametrs" id="potolok">
                                        <option data-param="1">Выбрать</option>
                                        <option data-param="1">Окраска</option>
                                        <option data-param="1.03">Потолок "Армстронг"</option>
                                        <option data-param="1.01">Пластиковые панели</option>
                                        <option data-param="1.5">Одноуровневый из ГКЛ</option>
                                        <option data-param="1.9">Двухуровневый из ГКЛ</option>
                                        <option data-param="1.5">Натяжной потолок</option>
                                    </select>
                                    <div class="form-group">
                             <label class="style8"><strong>Демонтажные работы&nbsp;</strong>&nbsp;</label>&nbsp;
                                        <select class="parametrs" id="demontag">
                                        <option data-param="1">Выбрать</option>
                                        <option data-param="1.03">Да</option>
                                        <option data-param="1">Нет</option>
                                        </select>                                             
                           </div>
                           <br>
                                    <span class="style22">
                           <label class="style23"><strong>Электромонтажные работы:</strong></label></span>
                           
                           <div class="form-group">
                           <label class="style8"><strong>Установка розеток, включателей и замена на новые</strong>&nbsp;</label>
                                        <select class="parametrs" id="rozetka">
                                        <option data-param="1">Выбрать</option>
                                        <option data-param="1">От 1-5 шт.</option>
                                        <option data-param="1.5">От 6-и выше шт.</option>
                                        </select>
                           </div>
                           
                           <div class="form-group">
                           <label class="style8"><strong>Разводка проводов</strong>&nbsp;</label> <td width="100"> 
                                        <select class="parametrs" id="provod">
                                        <option data-param="1">Выбрать</option>
                                        <option data-param="1.01">Да</option>
                                        <option data-param="1">Нет</option>
                                        </select>                           </div>
                           
                            <div class="form-group">
                             <label class="style8"><strong>Установка точечных светильников</strong>&nbsp;&nbsp;</label>                            
                                        <select class="parametrs" id="svetilnik">
                                        <option data-param="1">Выбрать</option>
                                        <option data-param="1">От 1-5 шт.</option>
                                        <option data-param="1.5">От 6-и выше шт.</option>
                                        </select>
                                        
                           </div>
                           
                            <div class="form-group">
                             <label class="style8"><strong>Установка люстры</strong>&nbsp;&nbsp;</label> <td width="100">
                                        <select class="parametrs" id="provod">
                                        <option data-param="1">Выбрать</option>
                                        <option data-param="1.01">Да</option>
                                        <option data-param="1">Нет</option>
                                        </select>                           
                           </div>
                           <br>
                           
                            <span class="style22">
                           <label class="style23"><strong>Сантехнические работы:</strong></label></span>
                           
                           <div class="form-group">
                             <label class="style8"><strong>Прокладка труб из полипропилена х/г</strong>&nbsp;&nbsp;</label><td width="100">
                                        <select class="parametrs" id="propilen">
                                        <option data-param="1">Выбрать</option>
                                        <option data-param="1.5">Да</option>
                                        <option data-param="1">Нет</option>
                                        </select>
                                         </div>
                              
                           <div class="form-group">
                             <label class="style8"><strong>Установка счетчика водяного</strong>&nbsp;&nbsp;</label><td width="100">
                                        <select class="parametrs" id="chetchik">
                                        <option data-param="1">Выбрать</option>
                                        <option data-param="1.03">Да</option>
                                        <option data-param="1">Нет</option>
                                        </select>                                                   
                             </div>
                           
                            <div class="form-group">
                             <label class="style8"><strong>Установка ванны</strong>&nbsp;&nbsp;</label><td width="100">
                                        <select class="parametrs" id="vanna">
                                        <option data-param="1">Выбрать</option>
                                        <option data-param="1.05">Да</option>
                                        <option data-param="1">Нет</option>
                                        </select>                                   
                             </div>
                             
                            <div class="form-group">
                             <label class="style8"><strong>Установка унитаза</strong>&nbsp;&nbsp;</label><td width="100">
                                        <select class="parametrs" id="unitaz">
                                        <option data-param="1">Выбрать</option>
                                        <option data-param="1.05">Да</option>
                                        <option data-param="1">Нет</option>
                                        </select>                           
                             </div>
                             
                           <div class="form-group">
                             <label class="style8"><strong>Установка раковины</strong>&nbsp;&nbsp;</label><td width="100">                       
                                        <select class="parametrs" id="vanna">
                                        <option data-param="1">Выбрать</option>
                                        <option data-param="1.05">Да</option>
                                        <option data-param="1">Нет</option>
                                        </select>   
                           </div>
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
$(document).ready(function () {
    
    $('.price-button').click(function() {
        var boxPrice = $(this).closest('.col-md-4');
 
        function hideButton () {
            $(boxPrice).find('.price-button').hide();
            $(boxPrice).find('.footer-price').append('<h4>Итог: <span class="cur"></span> <span class="rub">руб.  </span></h4>');
 
        };
        $(boxPrice).find('.box-price').animate({height: '810px'}, {'duration': 500}, {'easing': 'linear'}, hideButton());
 
    });
    function valParam () {
    var $dir = $('#type-direction'),$num = $('#number-sessions'),prices = {
   // номер_направления: { номер_кол-ва: цена, }
     1: { 0 },
     2: { 2000 },
     3: { 4500 },
     4: { 6500 }
 
   }
 
    $('select.parametrs option').click(function() {
        var listParam = $(this).closest('select.parametrs');
        $(listParam).find('option.check-param').removeClass('check-param');
        var elemParam = $(this);
        $(elemParam).addClass('check-param');
 
        var elemAttr = $(elemParam).attr('data-param');
    });
 
    
       var dir = $dir.val(); // значение направления
       var num = $num.val(); // значение кол-ва
 
        var Price = $('.box-filter').attr('type-direction'); //получаем стоимость кв.м.
        var roofValue = $('#roof').val();//вычисляем высоту потолков
        var paramValuePrice = $('price').find('option.check-param').attr('data-param');//выбираем тип ремонта
        var paramValuePol = $('#pol').find('option.check-param').attr('data-param');//вычисляем коээф для пола
        var paramValueSteny = $('#steny').find('option.check-param').attr('data-param');//вычисляем коэфф для стен
        var paramValuePotolok = $('#potolok').find('option.check-param').attr('data-param');//вычисляем коэфф для потолка
        var paramValueDemontag = $('#demontag').find('option.check-param').attr('data-param');//вычисляем коэфф для демонтажа
        if ($.isNumeric(roofValue)) {//если задана площадь помещения&#143;
            if (!$.isNumeric(roofValue)) roofValue = 1;
            if (!$.isNumeric(paramValuePol)) paramValuePol = 1;
            if (!$.isNumeric(paramValueSteny)) paramValueSteny = 1;
            if (!$.isNumeric(paramValuePotolok)) paramValuePotolok = 1;
            if (!$.isNumeric(paramValueDemontag)) paramValueDemontag = 1;
            var total = Price * roofValue * paramValuePol * paramValueSteny * paramValuePotolok * paramValueDemontag;//формула расчета общей стоимости
            var newTotal = Math.round(total);//округляем
            $('.cur').html(newTotal);
            $('.rub').show();
        };
        
    };
$('.calculator').on('click keyup', valParam);
Заранее огромное спасибо
Ответ: ОГРОМНЕЕШЕЕ СПАСИБО
Вопрос: Доработать скрипт

Скажите, пожалуйста, как сделать чтобы скрипт перебирал все cb и input с любым индексом, т.е. нужно оптимизировать.
Javascript
1
2
3
4
5
6
7
8
9
<script> 
function check() { 
    if (document.forma.cb1.checked) { 
        document.forma.input1.value="1"; 
    } else { 
        document.forma.input1.value="0"; 
    } 
} 
</script>
Ответ: Angelnarina19, потому что оператор "+" - это не только оператор суммирования чисел, но еще и оператор конкатенации строк. a.value и b.value в нашем случае возвращают тип "строка". Если JS получает для обработки тип данных, не соответствующий ожидаемому (например как в нашем случае, a.value * b.value - вы пытаетесь перемножить две строки), то JS попытается привести типы данных в соответствующие (строка преобразуется в число и затем выполнится действие). В случае с оператором "+" - JS видит, что вы пытаетесь сложить 2 строки. Он их и складывает. Чтобы сложить именно числа, представленные строкой, необходимо сначала преобразовать типы:
Javascript
1
2
3
4
var a = "63.2";
var b = "200";
alert(a + b); // "63.2200"
alert(parseFloat(a) + parseFloat(b)); // 263.2
parseFloat(x) преобразует строку x в число с плавающей точкой
Вопрос: Доработать скрипт меняющего текст со ссылкой в определенный период даты

Возможно ли дополнить скрипт, чтобы ссылка Анкор2 с 8.11 оставалась до тех пор, пока не придет дата 25.11? Не прописывая каждый раз по датам.
например:
с 8.11 по 24 - стоит ссылка Анкор1
с 25.11 по 15.12 - ссылка Анкор 2
<script type="text/javascript">

var date = new Date()
var month = date.getMonth() + 1
var day = date.getDate()
var cure = day+"."+month;

if(cure == "8.11") { document.write('<a href="адрес сайта" rel=”nofollow” target="_blank" style="font-family:Arial black;color:white;font-size:17px;text-decoration: none">Анкор1</a>'); }

if(cure == "25.11") { document.write('<a href="адрес сайта" rel=”nofollow” target="_blank" style="font-family:Arial black;color:white;font-size:17px;text-decoration: none">Анкор2</a>'); }

</script>
Ответ: Designer74,

Не используйте никогда документ.врите - прошлое тысячелетие для браузера Нетскейп. Начиная с 4-го эксплорера, используется DHTML, а с 5-го - DOM. Теперь все браузеры поддерживают ДОМ.
PS. А код я Вам не напишу - учитесь.