【问题标题】:Detect when select or text boxes are populated via jQuery检测何时通过 jQuery 填充选择或文本框
【发布时间】:2011-02-06 00:56:03
【问题描述】:

这听起来像是一个奇怪的问题,但希望那里有答案。

我的 HTML 页面中有许多选择框和文本框。这些框在页面加载后的某个时间点被填充,我无法控制它们何时出现;我只知道最终在页面加载后这些框会被填满。

有没有什么方法可以创建一个监听器来检测它们何时被填充?

我一直在使用 setInterval/clearInterval,但我希望 jQuery 有一种方法可以“监听”它们何时被填充。

想法?

【问题讨论】:

  • 他们是从用户那里获得价值还是通过代码获得价值?
  • 事件更改/keyup 对您有用吗?此外,您无法控制填充字段的脚本?
  • 澄清一下,(我知道这听起来很奇怪),但是当输入被填充时,我和用户都没有任何控制权。基本上,一旦页面加载,字段就会以某种方式填充。我所拥有的只是一个空的选择和文本框,最终将在服务器端的某个时间填充。我不知道导致这种情况发生的原因,我只需要知道它何时发生,以便我可以使用发送给我的数据。

标签: javascript jquery listener


【解决方案1】:

如果它们的值是由用户设置的,你可以监听 change 事件。

$(document).ready(function() {
    $('input, select').change(function() {
        var $changedElement = $(this);

        if($changedElement.val() != '') {
            // code to keep track of which elements are checked..
        }
    });
});

如果在页面加载后从脚本向页面添加元素,您需要使用live 而不是change

$('input, select').live('change' function() {
    ....
});

【讨论】:

    【解决方案2】:

    您可以使用trigger()触发change 事件,并使用change() 来监听change 事件:

    $(document).ready(
        function(){
            // basically put .trigger('change') after whatever function populates the inputs
            $('form input').populateInputFunction().trigger('change');
    
        $('input').change(
            function(){
                // do whatever you want to do when the inputs are changed
            });
    
        });
    

    如果没有看到您的代码,很难确切说明如何在您的页面中使用它们,但希望上面的示例能够提供一些见解。

    从您的问题来看,变化的来源也很模糊。如果它来自您自己的 jQuery 操作,那么上面应该可以工作,如果它来自用户的操作,那么您只需在 inputs 上监听 change() 事件(后一部分 $('input').change())。

    【讨论】:

    • David ~ 因为确实没有填充输入的函数(请参阅我对原始帖子的评论),还有其他方法吗?
    • @Mark:监听change() 事件应该仍然有效,尽管我对导致你输入的一些神奇事件着迷。
    • 也许我不太了解如何做到这一点。我的 HTML 页面基本上是从平台获取数据。为了让该数据进入我的页面,我向平台发送了一个参数,并将结果返回到选择框或文本框。数据返回的时间是未知的,但是一旦数据确实返回,我需要对其进行处理;因此需要知道数据何时返回。本质上,我知道何时发送参数,但不确定数据如何或何时返回。我不熟悉 jQuery 中的 AJAX,但这听起来像是可行的 AJAX 可以处理吗?
    猜你喜欢
    • 2021-08-20
    • 2013-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多