JavaScript « onchange у hidden елемента
спасибо
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. Работать будет у всех
Это касается всех форм и всех браузеров. Есть соглашение, что в 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>