任何事件都可以监听jQuery对隐藏输入的更改吗?


Can a change, to a hidden input, by jQuery be listened by any event?

也许你也从问题中理解,我正试图触发一个发生在隐藏输入上的变化。

<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>

有什么想法吗,我怎样才能触发这个变化?

如何在更改值后手动触发事件?

<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();
});