• 200907 Sep

    Почти любой веб-мастер сталкивался с тем, что когда при помощи JavaScript изменяется значение какого-либо поля (в том числе HIDDEN) событие ONCHANGE не срабатывает. В этой микростатье предлагается решение этой проблемы.

    Итак, начнем с азов. Почему собственно не срабатывает событие onchange ?


    Ответ очень простой: onchange работает только в том случае если значение поля изменено ПОЛЬЗОВАТЕЛЕМ а не при помощи скрипта!


    Каково решение этой проблемы?


    Нужно просто вручную запустить обработчик onchange:


     


    document.getElementById('object_id').onchange();

    UPD 01.10.2009 Но! Что будет если запустить эту конструкцию для элемента, у которого событие onchange отсуствует? Вылезет ошибка JavaScript.


    Как это исправить? Использовать try!


    Вот как будет выглядеть полноценная конструкция.


    try{
    document.getElementById('object_id').onchange();

    }catch(e){
    }

  • Комментарии

    • 1.
      Zorro пишет: Comment » 29 Сен 09 в 23:24

      Блог очень качественный. Надо бы Вам награду вручить за него или просто орден почета. :)

    • 2.
      Zhogov пишет: Comment » 29 Сен 09 в 23:47

       Большое спасибо за отзыв!!!

    • 3.
      aleks пишет: Comment » 17 Ноя 09 в 23:36

       Похоже для IE 6 не работает... Может есть решения и с учетом IE 6 ?

  • Оставить комментарий

    (не публикуется)

В действии | Исходный код
  • UTF Windows Конвертер
  • СВЯЗЬ: ICQ: 4316764