Можно ли прослушать изменение скрытого ввода с помощью jQuery каким-либо событием?

Может быть, вы также поняли из вопроса, я пытаюсь вызвать одно изменение, которое происходит со скрытым вводом.

<input type="hidden" name="secret" id="secret" onchange="alert(MSG);" value="0" />

Внутри я загружаю некоторые данные в div, который также скрыт, где загрузка выполняется с помощью jQuery, входное значение изменяется на 1. И окно предупреждения не отображается!!

Загрузка HTML:

$('.somediv').load('ajax.php?changesecret=yes');

Изменение приходит с php

<script type="text/javascript">
    $("#secret").val(1);
</scipt>

Любые идеи, как я могу вызвать это изменение?

3 ответа

Как насчет ручного запуска события после изменения значения?

<script type="text/javascript">
    $("#secret").val(1).trigger('change');
</scipt>

Вы можете справиться со всем этим в JavaScript следующим образом:

$.get('ajax.php',
    {
        changesecret: 'yes'
    },
    function (data) // This gets the data back from ajax.php
    {
        $('.somediv').html(data);
        alert(MSG);
    }
);

Любое изменение ввода, сделанное с помощью кода jQuery, не вызовет change событие, если вы не активируете его вручную. Попробуйте это:

   $("#secret").val(1).trigger('change');

или же

   $("#secret").val(1).change();

Выдержка из документации по jQuery

Если поле теряет фокус без изменения содержимого, событие не инициируется. Чтобы вызвать событие вручную, примените.change() без аргументов:

$('#other').click(function() {
  $('.target').change();
});
Другие вопросы по тегам