Introduction:-
Here I have explained how to create one calculator using jquery.
Description:-
                
 In my previous article I have
explained Image cropping using jquery 
Here I am going to create a simple web page
which will looks like a calculator having all similar features. For this I have
taken few buttons and labels control. I am preparing this calculator by
using JQuery.
I
have provided here lots of functionality which is generally used in a
calculator. This calculator is having all the basic operators. It is most
important that along with calculator functionality there must be a proper
design. By the way design has the vital role in a application.
I
have written some inline style which is not recommended, you just put these CSS
into a file and call that style sheet to your page.
For
this you should have the jQuery plug-in inside your application or you can use
any online plug-in for it. Then take one .aspx page and follow the below
process.
Here is my Design View Of My Page:-
Here take a look on my Solution with Jquery
Plugins:-
My Source Code:- 
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="calculator.aspx.cs" Inherits="calculator"
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD
XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <script src="Scripts/jquery-1.4.1.min.js"
type="text/javascript"></script>
    <title>Om Namah Shivaya</title>
    <style type="text/css">
       
.style1
       
{
           
width: 141px;
       
}
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <script type="text/javascript">
       
function Calculate() {
           
var Value = $("#<%=labelFormula.ClientID%>").text();
           
var calculatedValue = eval(Value);
         
  $("#<%=labelFormula.ClientID%>").text(calculatedValue);
           
return false;
       
}
       
function ButtonClick(btn) {
           
$("#<%=labelError.ClientID%>").text('');
           
var hiddenValue = $("#<%=hiddenBtnID.ClientID%>").val().split('+');
           
var buttonText = $(btn).val();
           
var old = $("#<%=labelFormula.ClientID%>").text();
           
var FormLastChar = old.substr(old.length - 1);
           
if ((buttonText == '+'
|| buttonText == '-' || buttonText == '*' || buttonText == '/'
|| buttonText == '^' || buttonText == '%' || buttonText == '.')
&& (FormLastChar == '+' ||
FormLastChar == '-' || FormLastChar == '*' || FormLastChar == '/'
|| FormLastChar == '^' || FormLastChar == '%' || FormLastChar == '.'))
{
               
if (buttonText != FormLastChar) {
                   
old = old.slice(0, -1);
                   
old = old + buttonText;
                   
$("#<%=labelFormula.ClientID%>").text(old);
                   
var SetHdnValue = $("#<%=hiddenBtnID.ClientID%>").val();
                   
var Setbuttons = SetHdnValue.split('+');
                   
var SetNewHiddenValue;
                   
SetNewHiddenValue = Setbuttons[0];
                   
for (var i = 1;
i < Setbuttons.length - 1; i++) {
                       
SetNewHiddenValue = SetNewHiddenValue + '+' +
Setbuttons[i];
                   
}
                   
SetNewHiddenValue = SetNewHiddenValue + '+' +
btn.id;
                   
$("#<%=hiddenBtnID.ClientID%>").val(SetNewHiddenValue);
               
}
               
return false;
           
}
           
else if (hiddenValue.length
> 0 && hiddenValue[0] != ''
&& hiddenValue[hiddenValue.length - 1].indexOf("Dbtn")
>= 0&& btn.id.indexOf("Dbtn")>
= 0) {
               
$("#<%=labelError.ClientID%>").text('This
is a Invalid Entry !');
               
return false;
           
}
           
else {
               
var CalculatorFormula = $("#<%=labelFormula.ClientID%>").text()
+ $(btn).val();
               
$("#<%=labelFormula.ClientID%>").text(CalculatorFormula);
               
var hdnValue;
               
if ($("#<%=hiddenBtnID.ClientID%>").val()
== '') {
                   
hdnValue = btn.id;
               
}
               
else {
                   
hdnValue = $("#<%=hiddenBtnID.ClientID%>").val() + '+' + btn.id;
               
}
               
$("#<%=hiddenBtnID.ClientID%>").val(hdnValue);
               
return false;
           
}
       
}
       
function Backspacefunctionality(btn) {
           
var SetHdnValue = $("#<%=hiddenBtnID.ClientID%>").val();
           
var Setbuttons = SetHdnValue.split('+');
           
if (Setbuttons.length > 0 && Setbuttons[0]
!= '') {
               
var ToReplaceValue = $("#"
+ Setbuttons[Setbuttons.length - 1] + "").val();
               
var FirstValue = $("#<%=labelFormula.ClientID%>").text();
               
FirstValue = FirstValue.slice(0, -(ToReplaceValue.length));
               
$("#<%=labelFormula.ClientID%>").text(FirstValue);
               
var SetNewHiddenValue;
               
if (Setbuttons.length > 1) {
                   
SetNewHiddenValue = Setbuttons[0];
                   
for (var i = 1;
i < Setbuttons.length - 1; i++) {
                       
SetNewHiddenValue = SetNewHiddenValue + '+' +
Setbuttons[i];
                   
}
      
         }
               
else {
                   
SetNewHiddenValue = '';
               
}
               
$("#<%=hiddenBtnID.ClientID%>").val(SetNewHiddenValue);
               
$("#<%=labelError.ClientID%>").text('');
           
}
           
return false;
       
}    
    </script>
    <div style="width: 307px">
       
<div style="width: 100%; float: left; height: 22px; background-color: #5D92B1; text-align: center;">
           
Calculator
       
</div>
       
<table style="width: 98%; float: left">
         
  <tr>
               
<td colspan="2">
                   
<table style="width: 101%; margin-top: 4px; margin-bottom: 10px">
                       
<tr>
                           
<td class="style1">
                               
<div style="color: #333333; font-family: Arial; font-size: 14px; font-weight: normal;
                                   
width: 100%; height: 50px; text-align: right; border: 1px Solid
#66CCCC; background-color: White;">
                                   
<asp:Label ID="labelFormula"
runat="server"
Style="padding-right:
4px"></asp:Label>
                                   
<br />
                                   
<br />
                                   
<asp:Label ID="labelError"
runat="server"
Style="padding-right: 4px; color: Red; font-style: italic;
                                       
font-size:
12px"></asp:Label>
                               
</div>
                               
<asp:HiddenField ID="hiddenBtnID"
runat="server"
/>
                           
</td>
                       
</tr>
                   
</table>
               
</td>
           
</tr>
           
<tr>
               
<td style="width: 100px">
                   
<asp:PlaceHolder ID="plcNumberPad"
runat="server">
                       
<table>
                           
<tr>
                               
<td>
                                   
<asp:Button ID="btnBackSpace"
runat="server"
CssClass="button"
OnClientClick="return
Backspacefunctionality(this)"
                                       
Text="<--"
ToolTip="Backspacefunctionality"
/>
                               
</td>
                               
<td>
                                   
<asp:Button ID="btnBrckStart"
runat="server"
CssClass="button"
OnClientClick="return
ButtonClick(this)"
    
                                   Text="(" />
                               
</td>
                               
<td>
                                   
<asp:Button ID="btnBrckClose"
runat="server"
CssClass="button"
OnClientClick="return
ButtonClick(this)"
                                       
Text=")"
/>
                               
</td>
                               
<td>
                                   
<asp:Button ID="btnPower"
runat="server"
CssClass="button"
OnClientClick="return
ButtonClick(this)"
                                       
Text="^"
/>
                               
</td>
                           
</tr>
                           
<tr>
                               
<td>
                                   
<asp:Button ID="btn7" runat="server"
CssClass="button"
OnClientClick="return
ButtonClick(this)"
                                       
Text="7"
/>
                               
</td>
                               
<td>
                                   
<asp:Button ID="btn8" runat="server"
CssClass="button"
OnClientClick="return
ButtonClick(this)"
                                       
Text="8"
/>
                               
</td>
                               
<td>
                                   
<asp:Button ID="btn9" runat="server"
CssClass="button"
OnClientClick="return
ButtonClick(this)"
                                       
Text="9"
/>
                               
</td>
                               
<td>
                                   
<asp:Button ID="btnMod" runat="server"
CssClass="button"
OnClientClick="return
ButtonClick(this)"
                                       
Text="%"
/>
                            
   </td>
                           
</tr>
                           
<tr>
                               
<td>
                                   
<asp:Button ID="btn4" runat="server"
CssClass="button"
OnClientClick="return
ButtonClick(this)"
                                       
Text="4"
/>
                               
</td>
                               
<td>
                                   
<asp:Button ID="btn5" runat="server"
CssClass="button"
OnClientClick="return
ButtonClick(this)"
                                       
Text="5"
/>
                               
</td>
                               
<td>
                                   
<asp:Button ID="btn6" runat="server"
CssClass="button"
OnClientClick="return
ButtonClick(this)"
                                       
Text="6"
/>
                               
</td>
                               
<td>
                                   
<asp:Button ID="btnDiv" runat="server"
CssClass="button"
OnClientClick="return
ButtonClick(this)"
                                       
Text="/"
/>
                               
</td>
                           
</tr>
                           
<tr>
                               
<td>
                                   
<asp:Button ID="btn1" runat="server"
CssClass="button"
OnClientClick="return
ButtonClick(this)"
                                       
Text="1"
/>
                               
</td>
                               
<td>
                                   
<asp:Button ID="btn2" runat="server"
CssClass="button"
OnClientClick="return
ButtonClick(this)"
                                       
Text="2"
/>
                               
</td>
                               
<td>
                                   
<asp:Button ID="btn3" runat="server"
CssClass="button"
OnClientClick="return
ButtonClick(this)"
                                       
Text="3"
/>
                               
</td>
                               
<td>
                                   
<asp:Button ID="btnMul" runat="server"
CssClass="button"
OnClientClick="return
ButtonClick(this)"
                                       
Style="font-size: 16px" Text="*" />
                               
</td>
                           
</tr>
                           
<tr>
                               
<td>
                                   
<asp:Button ID="btn0" runat="server"
CssClass="button"
OnClientClick="return
ButtonClick(this)"
                                       
Text="0"
/>
                               
</td>
                               
<td>
                                   
<asp:Button ID="btnPoint"
runat="server"
CssClass="button"
OnClientClick="return
ButtonClick(this)"
                                       
Style="font-size: 16px" Text="." />
                               
</td>
                               
<td>
                                   
<asp:Button ID="btnPlus"
runat="server"
CssClass="button"
OnClientClick="return
ButtonClick(this)"
                                       
Text="+"
/>
                               
</td>
                               
<td>
                                   
<asp:Button ID="btnMinus"
runat="server"
CssClass="button"
OnClientClick="return
ButtonClick(this)"
                                       
Text="-"
/>
                               
</td>
                               
<td>
                                   
<asp:Button ID="btnEqual"
runat="server"
CssClass="button"
OnClientClick="return
Calculate()"
                                       
Text="="
/>
                               
</td>
                           
</tr>
                       
</table>
                   
</asp:PlaceHolder>
               
</td>
           
</tr>
       
</table>
    </div>
    </form>
</body>
</html>
             
   After Run The Page it will Display As :-
This is all
about a sample calculator which is covering all the basic functionalities with
a beautiful interface. you can change the style sheet according to your
requirements. 
Hope you will
like this article.
Keep coding……
Thanks
Shibashish Mohanty
Shibashish Mohanty
 



 
 
No comments:
Post a Comment
Please don't spam, spam comments is not allowed here.