Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Выполнение проверки после наступления события (https://javascript.ru/forum/events/32166-vypolnenie-proverki-posle-nastupleniya-sobytiya.html)

juggalo 05.10.2012 16:33

Выполнение проверки после наступления события
 
Проблема в том, что есть элемент textarea, на который я вешаю обработчик события. Обработчик срабатывает - запускается функция, которая проверяет количество символов в textarea. Но проблема в том, что событие происходит только после ее(функции) выполнения. Есть ли возможность запустить некую коллбэк функцию после наступления события?

Конкретно, проблема в том, что, к примеру, в поле нет никакого текста. Печатаю туда символ, срабатывает событие keypress, я ожидаю, что функция учтет символ, который я напечатал, но по факту функция проверяет то, что было в поле до того как я туда что-то напечатал

Skipp 05.10.2012 16:38

Не стой стороны смотрите, для это есть свойство key ... у собития или же событие onkeydown.

juggalo 05.10.2012 16:51

onkeydown таким же образом срабатывает. Мне интересно можно ли дать событию произойти, потом следом запустить функцию

dmitriymar 05.10.2012 16:56

Цитата:

Сообщение от Skipp
Мне интересно можно ли дать событию произойти, потом следом запустить функцию

так всё и работает событие -действие на событие
в вашем случае нужно проверять onkeyup

juggalo 05.10.2012 16:59

Да, оно) Благодарю

cyber 05.10.2012 20:10

во, поспал раздуплися, хоть понимаю что пишу уже=)
<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>
    <textarea></textarea>
    <script>

      
     
      function AddSymbolsStop (opt) {  
      
      
      var block = false;
      var elem = opt.elem;
      
      
     elem.onkeydown = function () {
      
        var self = this;
        
        setTimeout(function () {
          
          if(self.value.length >= opt.length) block = true;
          else block = false;
        
        },0);  
      
      }
      
      
      elem.onkeypress = function () {
      
        if(block) return false;
      
      }
        
        elem = null;
    }
        
      var area = document.body.children[0]; 
      
      AddSymbolsStop({
        elem:area,
        length:7
      
      });   
    </script>

  </body>
</html>

Skipp 06.10.2012 01:37

Да, что-то я протупил.


Часовой пояс GMT +3, время: 10:37.