Работает ли jQuery change () со скрытыми элементами формы - PullRequest
4 голосов
/ 16 июля 2011

У меня есть карта во всплывающем окне. Я хочу передать значения (координаты) из этого обратно в главное окно и вызвать метод после изменения координат.

В моем главном окне у меня есть этот обработчик событий

$(".spatial").change
    (    function ()
        {
            alert('Handler for .change() called.');
        }
    );

По какой-то причине alert () не вызывается, когда эта форма изменяется (атрибут value изменяется).

<form action="#" id="spatial_points" class="spatial">
    <input type="hidden" id="start_point" class="spatial" value=""/>
    <input type="hidden" id="end_point" class="spatial" value=""/>
</form>

Я знаю, что change () работает только с полями формы. Мне интересно, распространяется ли это на hidden поле формы?

Так выглядит приведенный выше код после выбора карты:

<form id="spatial_points" class="spatial" action="#">
    <input id="start_point" class="spatial" type="hidden" value="(-7.9091601975133266, 127.0170435)">
     <input id="end_point" class="spatial" type="hidden" value="(-44.73273833806611, 154.790481)">
</form>

1 Ответ

12 голосов
/ 16 июля 2011

Событие change не вызывается при изменении значения с помощью JavaScript. И поскольку это единственный способ изменить скрытое поле, такое событие не будет сгенерировано.

Однако вы можете запустить обработчик событий вручную после изменения значения:

$(".spatial").val(something).change();
...