За последние 24 часа нас посетили 17755 программистов и 1721 робот. Сейчас ищут 899 программистов ...

Счётчик в textbox (Jquery)

Тема в разделе "JavaScript и AJAX", создана пользователем Pavel Amp, 13 авг 2011.

  1. Pavel Amp

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

    С нами с:
    26 май 2011
    Сообщения:
    8
    Симпатии:
    0
    Доброго всем времени суток!

    Подскажите, возможно ли с помощью цикла сделать счётчик в textbox`е?

    Примерно код выглядит вот так:

    HTML:
    1. <input id="textbox" type="text" value="" />
    [js]<script type="text/javascript">
    for (var a=0; a<100; a++)
    {
    setTimeout(function(){$('input#textbox').val(a);}, 100);
    }
    </script>
    [/js]

    Но он не работает (выдаёт только последнее значение т.е. 99).
    Каким способом ещё можно сделать такой счётчик?
     
  2. siiXth

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

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    ну подумай что оно делает , ты 100 раз запускаешь изменение сразу

    [js]<script type="text/javascript">
    $('input#textbox').val(0);
    function plus(){
    var a=$('input#textbox').val();
    if(a<100)
    {
    $('input#textbox').val($('input#textbox').val()+1);
    setTimeout(plus(), 100);
    }
    }

    plus();
    </script>[/js]
    разумеется с коленки, должно работать
     
  3. Pavel Amp

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

    С нами с:
    26 май 2011
    Сообщения:
    8
    Симпатии:
    0
    Спасибо! Идея хорошая. Но в результате почему-то получается строка - "0111";

    Решил что ошибка в приведение типов и немного изменил код:
    [js]<script type="text/javascript">
    $('input#textbox').val('0');

    function plus(){
    var a= parseInt($('input#textbox').val());
    if(a<100)
    {
    a+=1;
    $('input#textbox').val(a);
    setTimeout(plus(), 1000);
    }
    }

    plus();
    </script>[/js]
    Но так Timeout тоже не работает. В результате выводится сразу конечная цифра.
     
  4. zebra

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

    С нами с:
    11 июн 2011
    Сообщения:
    16
    Симпатии:
    0
    [js]
    $('input#textbox').val('0');

    function plus(){
    var a= parseInt($('input#textbox').val());
    if(a<100)
    {
    a+=1;
    $('input#textbox').val(a);
    setTimeout(plus, 1000);
    }
    }

    plus();
    [/js]
     
  5. Pavel Amp

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

    С нами с:
    26 май 2011
    Сообщения:
    8
    Симпатии:
    0
    Спасибо! Всё работает! Вопрос решён.