【问题标题】:Can a change, to a hidden input, by jQuery be listened by any event?任何事件都可以监听 jQuery 对隐藏输入的更改吗?
【发布时间】:2011-10-04 21:55:14
【问题描述】:

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

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

任何想法,我该如何触发这种变化?

【问题讨论】:

  • 您确定正在加载的代码正确更改了输入值吗?
  • 是的,感谢萤火虫,我可以看到正在发生的变化。

标签: php jquery onchange eventtrigger


【解决方案1】:

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

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

【讨论】:

  • 也感谢您的回答,但是:S
【解决方案2】:

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

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

【讨论】:

  • 汤姆,我需要解决这个问题而不是替代方案。非常感谢您的尝试:)
【解决方案3】:

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

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

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

摘自jQuery documentation

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

$('#other').click(function() {
  $('.target').change();
});

【讨论】:

  • 不,伙计,还没有这样做:S。因为更改来自加载的 html,所以我认为浏览器不会通过这种方式强制事件。
猜你喜欢
  • 2012-09-16
  • 2011-03-08
  • 1970-01-01
  • 2011-10-24
  • 1970-01-01
  • 1970-01-01
  • 2011-01-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多