Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Добавления в калькулятор дополнительного условия (https://javascript.ru/forum/misc/58873-dobavleniya-v-kalkulyator-dopolnitelnogo-usloviya.html)

Георгий М. 14.10.2015 23:57

Добавления в калькулятор дополнительного условия
 
Добрый день.
У меня возникла следующая проблема, я написал калькулятор который работает в IE, Opera, chrome и т.д. Прошу обратить внимание на следующий элемент площадь SQ, которая равна произведению длины dlin1 в мм на ширину shir1 в ММ
document.body.onload = function() {
 
    function calc1() {
        var d = document, price = tolshi = dostavka = ustanovka = bortik = moika = 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"),
	
	moi = d.getElementById("moi"),

        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 

	if (moi.checked) moika = +moi.value

        result.innerHTML = Math.round(sq * (price + tolshi) + dostavka + ustanovka + moika +bortik* dlin1/1000);

    };

    document.form.onclick = calc1;

    calc1();

}
</script>


Однако позже понял, что если длина * ширину меньше метра квадратного, то площадь SQ все равно должна быть равна одному квадратному метру, поэтому я добавил аргумент SQUARE

<script>

document.body.onload = function() {
 
    function calc1() {
        var d = document, square = price = tolshi = dostavka = ustanovka = bortik = moika = 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"),
	
	moi = d.getElementById("moi"),

        result = d.getElementById("result"),

        kol = d.getElementById("kol");


	if (sq <= 1) square = 1;

        else if (sq => 1) square = sq;

        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 

	if (moi.checked) moika = +moi.value

        result.innerHTML = Math.round(square * (price + tolshi) + dostavka + ustanovka + moika +bortik* dlin1/1000);

    };

    document.form.onclick = calc1;

    calc1();

}
</script>


И он отказывается работать в IE, однако в Хроме работает.
Уважаемые форумчане, может у вас будут предложения как более корректно прописать то, что если dlin1*shir1/1000000 меньше метра, то площадь все равно будет равна единице.
Заранее благодарю.

ksa 15.10.2015 09:56

Цитата:

Сообщение от Георгий М.
как более корректно прописать

Для начала почитать про циклы и начать их использовать. ;)

Георгий М. 15.10.2015 10:41

Уважаемый ksa,
Не могли бы вы более подробно написать про циклы? И зачем их использовать в калькуляторе?
Признаюсь я абсолютный профан в этом деле.
Спасибо.

ksa 15.10.2015 10:43

Цитата:

Сообщение от Георгий М.
Не могли бы вы более подробно написать про циклы?

Достаточно подробно про них написано в любой книжке...
http://javascript.ru/for
Цитата:

Сообщение от Георгий М.
зачем их использовать в калькуляторе?

Для сокращения и понятности кода.


Часовой пояс GMT +3, время: 15:50.