За последние 24 часа нас посетили 52597 программистов и 1764 робота. Сейчас ищут 786 программистов ...

Оптимизация кода.

Тема в разделе "JavaScript и AJAX", создана пользователем Kocapb, 4 июн 2010.

  1. Kocapb

    Kocapb Активный пользователь

    С нами с:
    10 июл 2008
    Сообщения:
    169
    Симпатии:
    0
    Здравствуйте столкнулся с проблемой оптимизации кода.
    Исходный код:
    [js]
    function count() {
    var sum_dollar;
    var amster = document.getElementById('amster').value;
    var strm8 = document.getElementById('strm8').value;
    var strmr = document.getElementById('strmr').value;

    if(isNaN(amster)) {
    correctNumber('amster');
    }
    if(isNaN(strm8)) {
    correctNumber('strm8');
    }

    if(isNaN(strmr)) {
    correctNumber('strmr');
    }


    sum_dollar = parseFloat(amster) + parseFloat(strm8) + parseFloat(strmr)
    document.getElementById('total1').innerHTML = sum_dollar.toFixed(2);

    }

    function correctNumber(site) {
    if(site == 'amster') {
    var amster = document.getElementById('amster').value;
    var change = amster.replace(",",".");
    document.calculator.amster.value = change;
    }
    if(site == 'strm8') {
    var strm8 = document.getElementById('strm8').value;
    var change = strm8.replace(",",".");
    document.calculator.strm8.value = change;
    }
    if(site == 'strmr') {
    var strmr = document.getElementById('strmr').value;
    var change = strmr.replace(",",".");
    document.calculator.strmr.value = change;
    }
    }
    [/js]
    Данный код предназначен для корректировки значений (введённые число с запятой преобразуется в число с точкой).
    Хотелось бы реализовать функцию correctNumber в виде стандартной функции которой можно было передавать только одно значение, id элемента формы.
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    за чем же дело встало? все тут есть для этого. осталось строчки местами переставить и добавить одну.
     
  3. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    [js]function count(){
    var total=document.getElementById('total1');
    var sum_dollar=0;
    var ids=new Array(
    'amster',
    'strm8',
    'strmr'
    );
    for(var i in ids){
    var elem=document.getElementById(ids);
    elem.value=elem.value.replace(",",".");
    sum_dollar+=parseFloat(elem.value);
    }
    total.innerHTML=sum_dollar.toFixed(2);
    }[/js]
     
  4. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    [js]function correctNumber(site) {
    var lobster = document.getElementById(site).value;
    var change = lobster .replace(",",".");
    document.calculator[lobster].value = change;
    }[/js]
     
  5. Kocapb

    Kocapb Активный пользователь

    С нами с:
    10 июл 2008
    Сообщения:
    169
    Симпатии:
    0
    Спасибо! Оба варианта то что надо! =)