JQuery некого рода калькулятор

Тема в разделе "Другие языки", создана пользователем MSW, 23 июн 2009.

Статус темы:
Закрыта.
Модераторы: Цукер
  1. MSW

    MSW

    Регистр.:
    27 авг 2007
    Сообщения:
    491
    Симпатии:
    408
    Суть приблемы в следующем:
    есть 3 поля, первое - это результат, два для ввода значений

    нужно сделать так чтоб при вводе значения в любую из этих двух форм, иои в обе вместе, происходил подсчёт например значение первой формы делилось на 2/3, значение второй формы делилось на 1/3 и эти два результата слаживалсь и уже полный результат выводился в первую форму.

    знания яваскрипт очень ограничены...
    анализируя различного рода скрипты и примеры смог реализовать это так:

    HTML:
    
    <script lang="JavaScript">
    function calculator(form) {
    silicon = eval(form.silicon.value);
    hydrogen = eval(form.hydrogen.value);
    
    metal = (silicon / (2/3)) + (hydrogen / (1/3));
    form.metal.value = metal;
    }
    </script>
    <form method="post" action="{@sendAction}">
    <input type="text" name="metal" size="8" readonly>
    
    <input type="text" name="silicon" onchange="this.value=this.value.replace(/([^0-9])/g,''); calculator(this.form);" onkeyup="var n=this.value.replace(/([^0-9])/g,''); if(n!=this.value) this.value=n; calculator(this.form);">
    
    <input type="text" name="hydrogen" onchange="this.value=this.value.replace(/([^0-9])/g,''); calculator(this.form);" onkeyup="var n=this.value.replace(/([^0-9])/g,''); if(n!=this.value) this.value=n; calculator(this.form);">
    </form>
    
    проблемка в том что если одно из полей в таком виде пустое то результат принимает значение NaN

    помогите, пожалуйста, разобраться с этим...

    былоб замечательно еслиб это всё на жквери реализовать...
     
  2. andrnag

    andrnag

    Регистр.:
    26 мар 2008
    Сообщения:
    350
    Симпатии:
    125
    Просто нужно привести правильно значение полей к числу: если невозможно получить из строки число, то присвоить «0». И тогда дальше арифметика пойдет нормально без всяких NotANumber.
     
Статус темы:
Закрыта.