Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.11.2010, 14:11
Интересующийся
Отправить личное сообщение для Ronicon Посмотреть профиль Найти все сообщения от Ronicon
 
Регистрация: 08.11.2010
Сообщений: 10

Расчет стоимости по введенным данным формы на лету
Добрый день! Подскажите плз, может ли 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 = длина * ширина * высота * стоимость

и человек мог видеть некоторый результат до отправки данных
Ответить с цитированием
  #2 (permalink)  
Старый 08.11.2010, 14:14
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

может
Ответить с цитированием
  #3 (permalink)  
Старый 08.11.2010, 15:23
Интересующийся
Отправить личное сообщение для Ronicon Посмотреть профиль Найти все сообщения от Ronicon
 
Регистрация: 08.11.2010
Сообщений: 10

Подскажите, в какую сторону думать, привязывать к полям формы обработчик onchange() или пытаться получить значения через getElementById? Как заставить результат изменяться динамически в зависимости от введенных данных?

Пока написал такое, но это работает только при вручную установленных значениях value

dlina = myform.leng.value;
shirina = myform.widt.value;
visota = myform.heig.value;
itog = dlina * shirina * visota;
document.write ("Приблизительная стоимость "+itog+" рублей");

Последний раз редактировалось Ronicon, 08.11.2010 в 15:31.
Ответить с цитированием
  #4 (permalink)  
Старый 08.11.2010, 16:05
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Как пример:

В первое поле нужно ввести/вставить выражение, второе - результирующее


<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, 08.11.2010 в 18:24.
Ответить с цитированием
  #5 (permalink)  
Старый 10.11.2010, 19:25
Аватар для vladlen
Кандидат Javascript-наук
Отправить личное сообщение для vladlen Посмотреть профиль Найти все сообщения от vladlen
 
Регистрация: 19.10.2010
Сообщений: 143

monolithed,
А не проще писать
document.forms['forma']['on'+event[i]] = function(i){...}

А то Илья где-то в дебрях сайта объявил forms рудиментом
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск