Forum Moderators: open

Message Too Old, No Replies

Make calculate work with an alert

         

namron77

3:12 am on May 9, 2009 (gmt 0)

10+ Year Member



I am brand new to javascript and I am having some problems. I am trying to calculate all 10 fields and have the answer appear as an alert. I can do it with an additional box, but every time I try code an onclick alert message nothing works. Any help would be appreciated. Thanks!

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Jennifer Hacker's Assignment 8</title>
</head>

<body>

<script language="JavaScript">
<!--
var btnDo= document.getElementByID('btnDo');

function calculate(what) {
for (var i=1,answer=0;i<11;i++)
answer += what.elements['textField' + i].value - 0;
what.answer.value = answer;
}

//-->
</script>

<form action="">
<input type="text" name="textField1"><br/>
<br/>
<input type="text" name="textField2"><br/>
<br/>
<input type="text" name="textField3"><br/>
<br/>
<input type="text" name="textField4"><br/>
<br/>
<input type="text" name="textField5"><br/>
<br/>
<input type="text" name="textField6"><br/>
<br/>
<input type="text" name="textField7"><br/>
<br/>
<input type="text" name="textField8"><br/>
<br/>
<input type="text" name="textField9"><br/>
<br/>
<input type="text" name="textField10"><br/>
<br/>
<input type="text" name="answer">
<input type="button" value="Calcuate" onClick="calculate(this.form)">

</body>
</html>

birdbrain

1:10 pm on May 9, 2009 (gmt 0)



Hi there namron77,

and a warm welcome to these forums. ;)

Try it like this...


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">

<title>Jennifer Hacker's Assignment 8</title>

<style type="text/css">
.numbers {
display:block;
margin:10px 0;
}
#answer {
background-color:#eee;
}
</style>

<script type="text/javascript">
if(window.addEventListener){
window.addEventListener('load',calculate,false);
}
else {
if(window.attachEvent){
window.attachEvent('onload',calculate);
}
}

function calculate(){

df=document.forms[0]; /* this refers to the first form in the document */
result=0;

df[11].onclick=function() { /* df[0] is the first form element. In full it would be document.forms[0][0] */
for(c=0;c<df.elements.length;c++) { /* df.elements is the total number of form elements */
if(!isNaN(df[c].value)) { /* !isNaN(df[c].value) checks for numbers */
result+=+df[c].value;
}
}
df[10].value=result;
}
df[12].onclick=function() {
result=0;
}
}
</script>

</head>
<body>

<form action="#">
<div>
<input class="numbers" type="text">
<input class="numbers" type="text">
<input class="numbers" type="text">
<input class="numbers" type="text">
<input class="numbers" type="text">
<input class="numbers" type="text">
<input class="numbers" type="text">
<input class="numbers" type="text">
<input class="numbers" type="text">
<input class="numbers" type="text">
<input id="answer" type="text" readonly="readonly">
<input type="button" value="calculate">
<input type="reset" value="clear">
</div>
</form>

</body>
</html>


birdbrain

namron77

1:48 pm on May 9, 2009 (gmt 0)

10+ Year Member



Thank you, this works but I am required to create an alert window with the calculated total as well. I have tried creating it several different ways, but I cannot seem to get it to work.

birdbrain

2:37 pm on May 9, 2009 (gmt 0)



Hi there namron77,

put the alert as indicated....


function calculate(){

df=document.forms[0]; /* this refers to the first form in the document */
result=0;

df[11].onclick=function() { /* df[0] is the first form element. In full it would be document.forms[0][0] */
for(c=0;c<df.elements.length;c++) { /* df.elements is the total number of form elements */
if(!isNaN(df[c].value)) { /* !isNaN(df[c].value) checks for numbers */
result+=+df[c].value;
}
}
df[10].value=result;[blue]alert(result)[/blue];
}
df[12].onclick=function() {
result=0;
}
}


birdbrain

namron77

3:05 pm on May 9, 2009 (gmt 0)

10+ Year Member



This works great! Thank you very much!

birdbrain

3:21 pm on May 9, 2009 (gmt 0)



No problem, you're very welcome. ;)