2

也许您也从这个问题中了解到,我试图触发一个发生在隐藏输入上的更改。

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

任何想法,我怎样才能触发这个变化?

4

3 回答 3

1

更改值后手动触发事件怎么样?

<script type="text/javascript">
    $("#secret").val(1).trigger('change');
</scipt>
于 2011-10-04T22:07:24.623 回答
0

你可以像这样在javascript中处理它:

$.get('ajax.php',
    {
        changesecret: 'yes'
    },
    function (data) // This gets the data back from ajax.php
    {
        $('.somediv').html(data);
        alert(MSG);
    }
);
于 2011-10-04T22:06:46.343 回答
0

通过 jQuery 代码对输入进行的任何更改都不会触发change事件,除非您也手动触发它。试试这些:

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

或者

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

jQuery 文档的摘录

但是,如果该字段在内容未更改的情况下失去焦点,则不会触发该事件。要手动触发事件,请应用 .change() 不带参数:

$('#other').click(function() {
  $('.target').change();
});
于 2011-10-04T22:11:24.793 回答