Можно ли прослушать изменение скрытого ввода с помощью 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(); });