Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Последнее значения удовлетворяющее условию 
:(
    Опции темы
lexxxart
Дата 6.11.2009, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 7.9.2009

Репутация: нет
Всего: нет



Люди добрые помогите пожалуйста написал бланк..
есть два параметра которые влияют на условие - limiti и ostatok
есть поля инпут

Код

echo "<tr bgcolor='#DBDBDB'><td align='center'><b>$f[stat]</b></td><td><input type='text' name='st_ob[$i]' value='$all_sum0[$i]' size=9 readonly></td><td><input type='text' name='st1_big[$i]' value='$stattt1[$i]' id='$limiti_prob[$i]' id2='$ostatok_prob[$i]' onkeyup='do_math2($i,this.id,this.id2)' size=9 readonly></td><td><input type='text' name='st2_big[$i]' value='$stattt2[$i]' id='$limiti_prob[$i]' id2='$ostatok_prob[$i]' onkeyup='do_math2($i,this.id,this.id2)' size=9 readonly>&nbsp;</td></tr>


Если я ввожу в поле значение - то запускается скрипт 
Код

onkeyup='do_math2($i,this.id,this.id2)' 


Скрипт проверяет условия -  если значение больше лимитов то должно выскакивать алерт и туда куда я вводил подставляться последне значение из условия,  
или как можно сделать чтобы сначала обрабатывалось условие, а потом поле инпут позволяло вводить данные...???


вот функция

function do_math2(p,limit,ostatok)
{
    var el=document.blank.elements; 
    tot_sum2 = 0;
    t1 = parseFloat(el['st1_big['+p+']'].value);
    t2 = parseFloat(el['st2_big['+p+']'].value);
    ttt = ( isNaN(t1) ? 0 : t1) + ( isNaN(t2) ? 0 : t2);
    
    
    
    //удаление пробелов - НЕ НАДО ТАК КАК Я удаляю в пхп - и там символ разделителя!!!
    /*var tempi = "";
    limit = '' + limit;
    splitstring = limit.split(" ");
    for(i = 0; i < splitstring.length; i++)
    tempi += splitstring[i];
    //return temp;
    //return temp0;
    limit=tempi;*/
    //lim1 = limit.trim(/\s+/g, '');
    
       
    // замена на точку у лимита
    out = ","; // эту букву заменяем
    add = "."; // на эту букву
    temp = "" + limit; // temporary holder
    while (temp.indexOf(out)>-1) {
    pos= temp.indexOf(out);
    temp = "" + (temp.substring(0, pos) + add + 
    temp.substring((pos + out.length), temp.length));
    }
    limit = parseFloat(temp)*1;
    
    // замена на точку у остатка
    out2 = ","; // эту букву заменяем
    add2 = "."; // на эту букву
    temp2 = "" + ostatok; // temporary holder
    while (temp2.indexOf(out2)>-1) {
    pos2= temp2.indexOf(out2);
    temp2 = "" + (temp2.substring(0, pos2) + add2 + 
    temp2.substring((pos2 + out2.length), temp2.length));
    }
    ostatok = parseFloat(temp2)*1;
    //замена , на точку
    
    
    limit_razn=ttt-limit;
    limit = ( isNaN(limit) ? 0 : ostatok);
    ostatok = ( isNaN(ostatok) ? 0 : ostatok);
    alert("\n остаток: "  + ostatok); 
    // если больше лимита
    if (ttt>limit) 
    { alert("\n Вы превысили лимит на: " + limit_razn + "\n Также у вас есть остаток: " + ostatok);   
            // + условие если остток больше нуля - 
                el['st_ob['+p+']'].value = limit - ostatok;
                el['st1_big['+p+']'].value = limit - ostatok;   
                el['st2_big['+p+']'].value='';                
    }
    
    if (ttt<=limit)
    { 
        
                if (ostatok>0)
                {
                el['st_ob['+p+']'].value = ( isNaN(t1) ? 0 : t1) + ( isNaN(t2) ? 0 : t2) - ostatok;                
                }    else {el['st_ob['+p+']'].value = ( isNaN(t1) ? 0 : t1) + ( isNaN(t2) ? 0 : t2);}    
    }
    // if (el['st_ob['+p+']'].value>1) { alert("\n Вы превысили лимит : " + ostatok );}
    
    for (k = 1; k <= 13; k++) 
    {
    tot_sum2 = tot_sum2 + (isNaN(parseFloat(el['st_ob['+k+']'].value)) ? 0 : parseFloat(el['st_ob['+k+']'].value)) ;
    el['itogo'].value = tot_sum2;
    }
}


Наверно проще сделать проверку а потом разрешение на ввод в инпут, чем откуда то выбирать предпоследнее значение???? Помогите плиз...

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0425 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.