I wrote a code which is getting users 5 different numbers (assign1 to assing5). It works really well. I want to add a drop-down button to make my code better. I want to consider the value of drop-down choices as grade6 and put it in my formula(I mean, I want to change the formula "total" to "total/grade6"). I feel really confused because I don't know what should I do, If it is possible, please help me. I should mentioned that I wrote the code in Farsi.
<!DOCTYPE html>
<body>
<form name="form1" onsubmit="event.preventDefault();return displayResult();">
<p style="font-family:calibri">T<b></b><input type="decimal" id="assign1" value="" name="onlynumbers" required><span class="required">*</span></p>
<p style="font-family:calibri">A<b></b><input type="decimal" id="assign2" value="" name="onlynumbers" required><span class="required">*</span></p>
<p style="font-family:calibri">E <b></b><input type="decimal" id="assign3" value="" name="onlynumbers" required><span class="required">*</span></p>
<p style="font-family:calibri">W <b></b><input type="number" id="assign4" value="" name="onlynumbers" required><span class="required">*</span></p>
<p style="font-family:calibri">D <b></b><input type="number" id="assign5" value="" name="onlynumbers" required><span class="required">*</span></p>
<p>
<button> <p style="font-family:calibri"> <font size="5"> Calculate </font> </p></button>
<input type="reset" value="↺">
</p>
</form>
<div id="total"></div>
<script>
function displayResult() {
var result = calculator();
document.getElementById('total').innerHTML =Math.round(result);
return false;
}
function calculator() {
var grade1 = parseFloat(document.getElementById('assign1').value * 1);
var grade2 = parseFloat(document.getElementById('assign2').value * 1);
var grade3 = parseFloat(document.getElementById('assign3').value * 1);
var grade4 = parseFloat(document.getElementById('assign4').value * 1);
var grade5 = parseFloat(document.getElementById('assign5').value * 1);
var total = ((2*((grade1 * grade3)+(grade2 * grade3)))+(grade1 * grade2)-(grade4*1.5*1.5)-(grade5*1*2.0)) ;
return total;
}
</script>
</div>
</body>
Drop-down button which I want to add to my above code:
<select id="SelectPaint">
<option value="8">1</option>
<option value="8">2</option>
<option value="13">3 </option>
<option value="14">4 </option>
<option value="13">5</option>
<option value="10">6</option>
<option value="12">7</option>
</select>
I don't know what you want to calculate so I took out the result as a console.log
so you can use the value where needed.
(I have also indicated the new things in the code with a comment)
I have added an empty field to your select sheet that returns "0" if nothing is selected. But if you don't need this field, you can remove it.
I hope I've been helpful
function displayResult() {
var result = calculator();
document.getElementById('total_1').innerHTML = Math.round(result[0]);
document.getElementById('total_2').innerHTML = Math.round(result[1]);
}
function calculator() {
var grade1 = parseFloat(document.getElementById('assign1').value * 1);
var grade2 = parseFloat(document.getElementById('assign2').value * 1);
var grade3 = parseFloat(document.getElementById('assign3').value * 1);
var grade4 = parseFloat(document.getElementById('assign4').value * 1);
var grade5 = parseFloat(document.getElementById('assign5').value * 1);
var grade6 = parseFloat(document.getElementById('SelectPaint').value * 1); // <--- NEW LINE
// In the HTML code, the values must be consecutive numbers...
// The true values of "grade6" are described here!!!
// At the moment I have entered 0.2 for everyone for a second value. Change with the correct values
var valForG6 = [
[1, 1], // if value 0
[8, 0.2], // if value 1
[8, 0.2], // if value 2
[13, 0.2], // if value 3
[14, 0.2], // if value 4
[13, 0.2], // if value 5
[10, 0.2], // if value 6
[12, 0.2], // if value 7
];
var calc = ((2 * ((grade1 * grade3) + (grade2 * grade3))) + (grade1 * grade2) - (grade4 * 1.5 * 1.5) - (grade5 * 1 * 2.0));
var total_1 = calc / valForG6[grade6][0]; // Calculation of total 1
var total_2 = calc / valForG6[grade6][1]; // Calculation of total 2
var res = [total_1, total_2];
return res;
}
//------------------------------------------------
var opt = document.getElementById('SelectPaint');
var optList = opt.getElementsByTagName('option');
for (var i = 0; i < optList.length; i++) {
optList[i].addEventListener("click", function () {
var g = this.value;
opt.setAttribute("value", g);
});
}
<form name="form1" onsubmit="event.preventDefault();return displayResult();">
<p style="font-family:calibri">طول اتاق<b></b><input type="decimal" id="assign1" placeholder="متر" value=""
name="onlynumbers" required><span class="required">*</span></p>
<p style="font-family:calibri">عرض اتاق<b></b><input type="decimal" id="assign2" placeholder=" متر" value=""
name="onlynumbers" required><span class="required">*</span></p>
<p style="font-family:calibri">ارتفاع اتاق <b></b><input type="decimal" id="assign3" placeholder="متر" value=""
name="onlynumbers" required><span class="required">*</span></p>
<p style="font-family:calibri">تعداد پنجره ها <b></b><input type="number" id="assign4" value=""
name="onlynumbers" required><span class="required">*</span></p>
<p style="font-family:calibri">تعداد درها <b></b><input type="number" id="assign5" value="" name="onlynumbers"
required><span class="required">*</span></p>
<select id="SelectPaint">
<option value="0"> </option>
<option value="1">رنگ اکریلیک طلایی</option>
<option value="2">رنگ اکریلیک متالیک صدفی</option>
<option value="3">رنگ اکریلیک مات </option>
<option value="4">رنگ اکریلیک نیم براق </option>
<option value="5">رنگ اکریلیک براق</option>
<option value="6">رنگ اکریلیک آستری</option>
<option value="7">مادر رنگ اکریلیک</option>
</select>
<p>
<button>
<p style="font-family:calibri">
<font size="5"> محاسبه رنگ موردنیاز </font>
</p>
</button>
<input type="reset" value="↺">
</p>
</form>
<div id="total_1"></div>
<div id="total_2"></div>