We can
calculate sum and average of values entered in textboxes with the help of small
piece of jQuery code.
First of
all let’s create a HTML form where we’ll ask user to enter marks in each
subject, under body section add following HTML:
<table class="demo-table">
<tr class="label">
<td colspan="2">Please
enter marks(0-99):</td>
</tr>
<tr>
<td>English</td>
<td>
<input type="text" class="txtMarks" name="txtMarks"
maxlength="2" /></td>
</tr>
<tr>
<td>Hindi</td>
<td>
<input type="text" class="txtMarks" name="txtMarks"
maxlength="2" /></td>
</tr>
<tr>
<td>Math</td>
<td>
<input type="text" class="txtMarks" name="txtMarks"
maxlength="2" /></td>
</tr>
<tr>
<td>Science</td>
<td>
<input type="text" class="txtMarks" name="txtMarks"
maxlength="2" /></td>
</tr>
<tr>
<td>Economics</td>
<td>
<input type="text" class="txtMarks" name="txtMarks"
maxlength="2" /></td>
</tr>
<tr class="label">
<td class="right">Total
Marks :</td>
<td class="center"><span id="totalMarks">0</span></td>
</tr>
<tr class="label">
<td class="right">Average
:</td>
<td class="center"><span id="average">0</span></td>
</tr>
</table>
|
As you
can see in HTML we have used some classes to style our form add these classes
under head section as:
<style>
body
{
font-family: arial;
color: #014E63;
}
.demo-table
{
border-collapse: collapse;
background-color: #FCFCFC;
width: 400px;
border: 1px solid;
}
.demo-table td
{
border: 1px solid;
}
.demo-table td.right
{
text-align: right;
}
.demo-table td.center
{
text-align: center;
}
.label
{
font-size: 18px;
font-weight: bold;
}
.txtMarks
{
background-color: #BFDCE1;
font-weight: bold;
text-align: right;
}
</style>
|
Our form
is ready now and we’ll add jQuery code to get the sum and average:
First of all add reference to jQuery
library, so that jQuery will work on our page.
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js">
</script>
Now add the jQuery code to show Sum and
average of entered numbers:
<script type="text/javascript">
$(document).ready(function () {
//iterate through each textboxes
$('.txtMarks').each(function () {
// call 'calcSumAndAverage' method on keyup handler.
$(this).keyup(function () {
calcSumAndAverage();
});
});
});
function
calcSumAndAverage() {
var total = 0;
var average = 0;
//iterate through each textboxes with class name
'.txtMarks'
//and add the values.
$('.txtMarks').each(function () {
//add only if the value is number
if (!isNaN(this.value) &&
this.value.length
!= 0) {
total += parseFloat(this.value);
}
});
//Calculate the Average
if (!isNaN(total) &&
total != 0) {
//Get count of textboxes with class '.txtMarks'
var txtboxes = $('.txtMarks').length;
average = parseFloat(total) / txtboxes;
}
//Show Total Marks.
$('#totalMarks').html(total);
// Show Average upto 2 decimal places using .toFixed()
method.
$('#average').html(average.toFixed(2));
}
</script>
|
I have
added comments to clear understanding of code, in above code we simply calling ‘calcSumAndAverage’
method on ‘keyup’ event of each textbox and inside this method we calculate sum
and average of entered numbers.
|
Comments
Post a Comment