JavaScript « onchange у hidden елемента

Можно ли отловить onchange у hidden контрола? значение контрола изменяется из javascript. варианты можно на простом js или jquery.

спасибо

1 ответов


Пишу для себя, чтобы не забыть:

если на jquery, то после того как изменим значение у инпута, то событие onchange не сработает:

<input id="city_id" type="hidden" value="" />

------

// неправильно:
$("input#city_id").val(new_id); // событие change тут не сработает


Чтобы сработало событие, нужно в момент утановки инпуту нового значение вызвать событие:
// правильно:
$("input#city_id").val(new_id).change(); // событие chenge сработает

и теперь можно вешать change на этот инпут, событие сработает если инпут изменят руками или из скрипта
$("input#city_id").on('change', function(){
        alert('меня изменили!');
});


Кстати, пофиг hidden или не hidden. Работать будет у всех


В опере однозначно нет.
в FF - можно.


Это касается всех форм и всех браузеров. Есть соглашение, что в JavaScript, события порождает человек, через взаимодействие с элементами формы.

Есть способ сделать так, что бы порождалось такое событие у скрытого элемента формы. Пример взят с SO , тут придумывать ничего нового не надо. Вопрос обсуждается в сети не первый раз ;)


<form name="f" onsubmit="document.f.h.value='1';
    document.f.h.onchange(); return false;"
>
<input type="hidden" name="h" value="0"
    onchange="alert(document.f.h.value);" />
<input type="submit" />
</form>