Сообщение от ФедорН
|
через header.php так и не смог подключить ни одним из способов (причина так мне осталась неясна)
|
Если используется CMS, то подключение скриптов в ней производится через конфигурацию. Читайте документацию. То что будет прописываться вне ее в шаблонах может быть переопределено конфигурацией.
Сообщение от ФедорН
|
Фреймворк jQuery мне показался более простым для понимания
|
Это не повод всегда обращаться к его услугам когда доступ уже есть и без него. Например, чтобы меньше бродить по набору в коде добавления элементов, строки кода с 06 по 13 можно заменить этим:
.find('select,input,output') //получаем элементы
.val(function() { //значения по умолчанию
return this.className == 'reset' ? ''
: this.type == 'range'
? this.min
: this.previousSibling.min
})
В данном случае одной функцией производится установка значений по умолчанию всем добавляемым элементам. Для этого списку и полю отображающему результат расчета добавляется класс reset. С учетом того, что элемент хранящий результат расчета заменен на input, его код будет таким:
<input form="send" class="reset" name="result[]" readonly>
Только необходимо обязательное условие - между элементами слайдеров и полями отображающими их значения не должно быть пробелов, любые соседние с ними элементы как угодно. То есть так, например:
<label>Высота:</label>
<input form="send" type="range" min="40" max="200" name="height[]" value="40"><output>40</output>
В противном случае this.previousSibling вернет не input.
Я не выяснял что такое c, не знаю что должно увеличиваться на коэффициент, правьте сами, в примере, это к конечному результату. А расчет, это:
$('#form').on('input', 'select,input', function() {
if(this.type == 'range') $(this).next().val(this.value) //отобразить значение слайдера
//рассчет
var o = $(this).closest('.roword').find('select,input'), //получить все элементы
v = o.eq(0).val(), //значение списка
w = o.eq(1).val(), //ширина
h = o.eq(2).val(), //высота
r = o.last().val(''); //вывод результата, очистить
if(v) { //если в списке выбрано значение
v = v * w * h;
if(w * h <= 2500) v *= 1.1;
r.val(v.toFixed(2))
}
})