rontommy
Но ведь промежуточные данные (то, что суммируется) и результат (сумма) должны же как-то отображаться на странице... Ну ладно, пусть это будут не блоки, а поля формы <INPUT TYPE="text" NAME="bla-bla-bla"> - без разницы. Но ведь подразумевается, что:
1. есть страница;
2. на ней есть форма, в которую пользователь вводит какие-то значения;
3. нужно подсчитать сумму этих значений без перезагрузки и ПОКАЗАТЬ ее.
Имея блоки <DIV ID="...">, можно изменять их значения (как и поля формы), а имея форму, обращаться к ее полям можно также по их идентификаторам (как и к блокам).
Вот два примера, с DIV:
Код HTML:
<HTML><HEAD><SCRIPT LANGUAGE="JavaScript">
<!--
function myInput (s) {
var myDiv = document.getElementById(s);
var myVal = prompt('Enter ' + s, '0');
myDiv.innerHTML = myVal;
}
function mySumma() {
var s = 0;
for (var i = 1; i <= 3; i++) {
var myDiv = document.getElementById('val' + i);
s += (myDiv.innerHTML / 1);
}
var myDiv = document.getElementById('summ');
myDiv.innerHTML = s;
}
//-->
</SCRIPT></HEAD><BODY>
<A HREF="javascript:myInput('val1');">value1</A>: <DIV ID="val1" STYLE="display: inline;">12</DIV><BR>
<A HREF="javascript:myInput('val2');">value1</A>: <DIV ID="val2" STYLE="display: inline;">23</DIV><BR>
<A HREF="javascript:myInput('val3');">value1</A>: <DIV ID="val3" STYLE="display: inline;">34</DIV><BR>
<A HREF="javascript:mySumma();">summa</A>: <DIV ID="summ" STYLE="display: inline;"></DIV>
</BODY></HTML>
и с INPUT:
Код HTML:
<HTML><HEAD><SCRIPT LANGUAGE="JavaScript">
<!--
function mySumm() {
var s = 0;
for (var i = 1; i <= 3; i++) {
var myDiv = document.getElementById('val' + i);
s += (myDiv.value / 1);
}
summ.value = s;
}
//-->
</SCRIPT></HEAD><BODY>
value1: <INPUT TYPE="text" NAME="val1" VALUE="12" SIZE="10"><BR>
value2: <INPUT TYPE="text" NAME="val2" VALUE="23" SIZE="10"><BR>
value3: <INPUT TYPE="text" NAME="val3" VALUE="34" SIZE="10"><BR>
<INPUT TYPE="button" onClick="javascript:mySumm();" VALUE="summ">
<INPUT TYPE="text" NAME="summ" SIZE="10" VALUE="">
</BODY></HTML>