Всем здрасьте! Изучаю принцип работы калькулятора на сайте (пример интернет магазина), нашел простенький ява скрипт, но где то, видимо, ошибка и ничего не работает. Знающие люди, подскажите, пожалуйста, что не так и где я накосячил?
HTML |
<head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <title>Интернет магазин</title> <script language="javascript"> function calc () { tov=new Array ("tov1", "tov2", "tov3"); prc=new Array (200, 400, 600); var kolvo=0; var stoim=0; for (n=o; n<tov.length; n++){ if (document.mainform(tov[n])!=null) { kolvo=kolvo+1*document.mainform(tov[n]).value; stoim=prc[n]*document.mainform(tov[n]).value+stoim; } } mess.innerHTML="Количество заказанных товаров - "+kolvo+"<br/>"+"Стоимость заказанных товаров - "+stoim; document.mainform("stoim").value=stoim; document.mainform("kolvo").value=kolvo; } </script> </head> <body> <form action="zakaz.php" name="mainform"> <select name="tov1" onchange="calc ()"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> <select name="tov2" onchange="calc ()"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> <select name="tov3" onchange="calc ()"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> <input type="submit" /> <p id="mess">Итог калькулятора должен быть здесь.</p> <input type="hidden" name="stoim" value="0" /> <input type="hidden" name="kolvo" value="0" /> </form> </body> |
Код |
for (n=o; n<tov.length; n++){ |
Цитата (vegasmoscow @ 27.07.2009 - 13:29) |
вроде как в книжке пишут, имя формы mainform служит для того, чтобы ява скрипт по этому имени получал данные из этой же формы.. |
Цитата (kirik @ 28.07.2009 - 15:57) |
Правильно пишут, вот только это не функция, а объект документа (чиатй массив элементов документа), и к нему нужно обращаться как к массиву, тоесть через квадратные скобки: mainform[tov[n]]. Везде исправляй.. |
HTML |
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <title>Интернет магазин</title> <script type="text/javascript"> function calc () { tov = new Array ('tov1', 'tov2', 'tov3'); prc = new Array (200, 400, 600); var kolvo = 0; var stoim = 0; for (n=0; n<tov.length; n++) { if (document.getElementById(tov[n])) { var tmp = parseInt(document.getElementById(tov[n]).value) kolvo += tmp; stoim += tmp*prc[n]; } } document.getElementById('mess').innerHTML="Количество заказанных товаров - "+kolvo+"<br />"+"Стоимость заказанных товаров - "+stoim; document.mainform['stoim'].value = stoim; document.mainform['kolvo'].value = kolvo; } </script> </head> <body> <form action="zakaz.php" name="mainform"> <select name="tov1" id="tov1" onchange="calc()"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> <select name="tov2" id="tov2" onchange="calc()"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> <select name="tov3" id="tov3" onchange="calc()"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> <input type="submit" /> <p id="mess">Итог калькулятора должен быть здесь.</p> <input type="hidden" name="stoim" value="0" /> <input type="hidden" name="kolvo" value="0" /> </form> </body> </html> |
Цитата (Sylex @ 30.07.2009 - 04:34) |
getElementById |