In my application I have five textboxes. The task which I want to do is that to add(sum) the values entered in the five texboxes and display it in the 6th textbox. I have tried the following code but it is not showing the addition. Can you tell me what I am doing wrong here?
ASPX Code
<asp:TextBox ID="D1" runat="server" Width="50px" onkeypress="return validate(event)" onkeyup="calc()" ></asp:TextBox>
<asp:TextBox ID="D2" runat="server" Width="50px" onkeypress="return validate(event)" onkeyup="calc()" ></asp:TextBox>
<asp:TextBox ID="D3" runat="server" Width="50px" onkeypress="return validate(event)" onkeyup="calc()" ></asp:TextBox>
<asp:TextBox ID="D4" runat="server" Width="50px" onkeypress="return validate(event)" onkeyup="calc()" ></asp:TextBox>
<asp:TextBox ID="D5" runat="server" Width="50px" onkeypress="return validate(event)" onkeyup="calc()" ></asp:TextBox>
Total Hours<asp:TextBox ID="Total" runat="server" Width="50px" ReadOnly="True"></asp:TextBox>
JavaScript
<script type="text/javascript">
//Function to allow only numbers to textbox
function validate(key) {
//getting key code of pressed key
var keycode = (key.which) ? key.which : key.keyCode;
var phn = document.getElementById('D1');
var phn1 = document.getElementById('D2');
var phn2 = document.getElementById('D3');
var phn3 = document.getElementById('D4');
var phn4 = document.getElementById('D5');
//comparing pressed keycodes
if (!(keycode == 8 || keycode == 46) && (keycode < 48 || keycode > 57)) {
return false;
}
}
void function calc(dat) {
var a1, a2, a3, a4, a5, total, pp;
a1 = document.getElementById("<%=D1.ClientID%>").value;
a2 = document.getElementById("<%=D2.ClientID%>").value;
a3 = document.getElementById("<%=D3.ClientID%>").value;
a4 = document.getElementById("<%=D4.ClientID%>").value;
a5 = document.getElementById("<%=D5.ClientID%>").value;
total = parseInt(a1) + parseInt(a2) + parseInt(a3) + parseInt(a4) + parseInt(a5);
document.getElementById(<%=Total%>).value = total;
}
</script>
(<%=Total%>)probably should be("%=Total%>")like your other getElement* calls'<%=D1.ClientID%>'.. etcinside methodvalidate()as well. Also use'<%=Total.ClientID %>'insidecalc()0x800a1391 - JavaScript runtime error: 'calc' is undefined