Расчет стоимости по введенным данным формы на лету
Добрый день! Подскажите плз, может ли Javascript посчитать введеные в форму числа и выдать результат на той же странице до submit`а...
например, есть форма, обрабатываемая php-скриптом и отсылающая введенные данные на e-mail. <form action="/somefile.php" method=post id="myform"> Размеры: <b>Длина</b><input type="text" name="leng" size="5" value=""> мм<br> <b>Ширина</b><input type="text" name="widt" size="5" value=""> мм<br> <b>Высота</b><input type="text" name="heig" size="5" value=""> мм ..... <input type="submit" value="Отправить" name="submit"> </form> Идея в том, чтобы после формы выдавалась строка Приблизительная стоимость: $var, где $var = длина * ширина * высота * стоимость и человек мог видеть некоторый результат до отправки данных |
может
|
Подскажите, в какую сторону думать, привязывать к полям формы обработчик onchange() или пытаться получить значения через getElementById? Как заставить результат изменяться динамически в зависимости от введенных данных?
Пока написал такое, но это работает только при вручную установленных значениях value dlina = myform.leng.value; shirina = myform.widt.value; visota = myform.heig.value; itog = dlina * shirina * visota; document.write ("Приблизительная стоимость "+itog+" рублей"); |
Как пример:
В первое поле нужно ввести/вставить выражение, второе - результирующее <form name="forma"> <input type="text" /> <input type="text" /> </form> <script type="text/javascript"> window.onload = function(){ var event = ['keyup', 'change']; for(i=0; i<event.length; i++){ document.getElementsByName('forma')[0]['on'+event[i]] = function(i){ return function(){ this.elements[1].value = (this.elements[0].value == '') ? '' : eval(this.elements[0].value); }; }(i); } }; </script> |
monolithed,
А не проще писать document.forms['forma']['on'+event[i]] = function(i){...} А то Илья где-то в дебрях сайта объявил forms рудиментом :) |
Часовой пояс GMT +3, время: 21:05. |