Добрый день, уважаемые форумчане.
Признаюсь, в программировании я пока профан, но работающие скрипты 3-ех калькуляторов стоимости для добавления их на сайт я написал. Однако возникла проблема, 3 скрипта работают по раздельности, но добавляя их последовательно на общую htm страницу и разделяя их тэгом скрипт, они работать отказываются.
Вот первый скрипт:
document.body.onload = function() {
function calc() {
var d = document, price = tolshi = dostavka = ustanovka = bortik = 0;
shir1 = +d.getElementById("shir").value,
dlin1 = +d.getElementById("dlin").value,
sq = (shir1 * dlin1 / 1000000),
color1 = d.getElementById("color1"),
color2 = d.getElementById("color2"),
color3 = d.getElementById("color3"),
color4 = d.getElementById("color4"),
tolsh1 = d.getElementById("tolsh1"),
tolsh2 = d.getElementById("tolsh2"),
tolsh3 = d.getElementById("tolsh3"),
tolsh4 = d.getElementById("tolsh4"),
bort1 = d.getElementById("bort1"),
bort2 = d.getElementById("bort2"),
dost = d.getElementById("dost"),
ust = d.getElementById("ust"),
result = d.getElementById("result"),
kol = d.getElementById("kol");
if (color1.checked) price = +color1.value;
if (color2.checked) price = +color2.value;
if (color3.checked) price = +color3.value;
if (color4.checked) price = +color4.value;
if (tolsh1.checked) tolshi = +tolsh1.value;
if (tolsh2.checked) tolshi = +tolsh2.value;
if (tolsh3.checked) tolshi = +tolsh3.value;
if (tolsh4.checked) tolshi = +tolsh4.value;
if (bort1.checked) bortik = +bort1.value;
if (bort2.checked) bortik = +bort2.value;
if (dost.checked) dostavka = +dost.value;
if (ust.checked) ustanovka = +ust.value
result.innerHTML = Math.round(sq * (price + tolshi) + dostavka + ustanovka + bortik* dlin1/1000);
};
document.form.onchange = calc;
calc();
}
Вот второй - в него лишь добавляется одна новая пара (dlin2 и shir2) переменных, все остальные переменные старые
document.body.onload = function() {
function calc() {
var d = document, price = tolshi = dostavka = ustanovka = bortik = 0;
shir1 = +d.getElementById("shir").value,
dlin1 = +d.getElementById("dlin").value,
shir2 = +d.getElementById("shir01").value,
dlin2 = +d.getElementById("dlin01").value,
sq = ((shir1 * dlin1 / 1000000) + (shir2 * dlin2 / 1000000) - (shir1 * shir2 / 1000000)),
color1 = d.getElementById("color1"),
color2 = d.getElementById("color2"),
color3 = d.getElementById("color3"),
color4 = d.getElementById("color4"),
tolsh1 = d.getElementById("tolsh1"),
tolsh2 = d.getElementById("tolsh2"),
tolsh3 = d.getElementById("tolsh3"),
tolsh4 = d.getElementById("tolsh4"),
bort1 = d.getElementById("bort1"),
bort2 = d.getElementById("bort2"),
dost = d.getElementById("dost"),
ust = d.getElementById("ust"),
result = d.getElementById("result"),
kol = d.getElementById("kol");
if (color1.checked) price = +color1.value;
if (color2.checked) price = +color2.value;
if (color3.checked) price = +color3.value;
if (color4.checked) price = +color4.value;
if (tolsh1.checked) tolshi = +tolsh1.value;
if (tolsh2.checked) tolshi = +tolsh2.value;
if (tolsh3.checked) tolshi = +tolsh3.value;
if (tolsh4.checked) tolshi = +tolsh4.value;
if (bort1.checked) bortik = +bort1.value;
if (bort2.checked) bortik = +bort2.value;
if (dost.checked) dostavka = +dost.value;
if (ust.checked) ustanovka = +ust.value
result.innerHTML = Math.round(sq * (price + tolshi) + dostavka + ustanovka + bortik* dlin1/1000);
};
document.form.onchange = calc;
calc();
}
Вот третий код. Он отличается от предыдущего опять на одну пару переменных (dlin3 и shir3).
document.body.onload = function() {
function calc() {
var d = document, price = tolshi = dostavka = ustanovka = bortik = 0;
shir1 = +d.getElementById("shir").value,
dlin1 = +d.getElementById("dlin").value,
shir2 = +d.getElementById("shir01").value,
dlin2 = +d.getElementById("dlin01").value,
shir3 = +d.getElementById("shir02").value,
dlin3 = +d.getElementById("dlin02").value,
sq = ((shir1 * dlin1 / 1000000) + (shir2 * dlin2 / 1000000) + (shir3 * dlin3 / 1000000) - (shir1 * shir2 / 1000000) - (shir1 * shir3/1000000)),
color1 = d.getElementById("color1"),
color2 = d.getElementById("color2"),
color3 = d.getElementById("color3"),
color4 = d.getElementById("color4"),
tolsh1 = d.getElementById("tolsh1"),
tolsh2 = d.getElementById("tolsh2"),
tolsh3 = d.getElementById("tolsh3"),
tolsh4 = d.getElementById("tolsh4"),
bort1 = d.getElementById("bort1"),
bort2 = d.getElementById("bort2"),
dost = d.getElementById("dost"),
ust = d.getElementById("ust"),
result = d.getElementById("result"),
kol = d.getElementById("kol");
if (color1.checked) price = +color1.value;
if (color2.checked) price = +color2.value;
if (color3.checked) price = +color3.value;
if (color4.checked) price = +color4.value;
if (tolsh1.checked) tolshi = +tolsh1.value;
if (tolsh2.checked) tolshi = +tolsh2.value;
if (tolsh3.checked) tolshi = +tolsh3.value;
if (tolsh4.checked) tolshi = +tolsh4.value;
if (bort1.checked) bortik = +bort1.value;
if (bort2.checked) bortik = +bort2.value;
if (dost.checked) dostavka = +dost.value;
if (ust.checked) ustanovka = +ust.value
result.innerHTML = Math.round(sq * (price + tolshi) + dostavka + ustanovka + bortik* dlin1/1000 + bortik* dlin2/1000 + bortik* dlin3/1000);
};
document.form.onchange = calc;
calc();
}
Мой вопрос состоит в следующем:
1) Может ли так быть, что калькуляторы не работают из-за совпадения имен переменных? Я побывал их переименовать, но они по прежнему не работали.
2) Может здесь нужно прописать один универсальный скрипт? (Если нужен универсальный скрипт, то как учесть то, что каждый скрипт прописан под свой набор ввод вводных текстовых полей, куда пользователь вводит свои параметры размеров).
Заранее благодарю за ответ.