【问题标题】:jQuery trigger onChangejQuery 触发 onChange
【发布时间】:2012-02-05 16:44:48
【问题描述】:

我有一个input 文本字段,其中填充了使用 jQuery 函数的图像的 url。 如何使用input的“onChange”事件来运行jQuery函数?

【问题讨论】:

  • 你在 url 中使用了 hash(#) 吗?
  • 那么 url 是什么样的呢?我想我可以为你写一些东西,但我对你到底想要什么感到困惑。你想把它移到聊天室吗?
  • 你试过什么?你的代码在哪里?工作演示怎么样?阅读本文并尝试相应地编辑您的问题:msmvps.com/blogs/jon_skeet/archive/2010/08/29/…
  • 请编写您的代码,以便我们提供帮助。

标签: function onchange


【解决方案1】:

如果您通过 JavaScript 更新字段,则更改值后只需调用它change()

$('#myId').val('new_url').change();

【讨论】:

  • 也试过了,但如果该字段被其他脚本更新,则不要更新
【解决方案2】:

试试这个 -

$('#myId').trigger('change');

将它放在您要更改文本框中的 url 的任何函数中。

【讨论】:

    【解决方案3】:

    试试这个:

    $("#myId").trigger('event_name')
    

    其中 event_name 是您绑定检查器函数的事件,例如 keyUp 或 change

    【讨论】:

      【解决方案4】:

      我无法想象问题出在.change() 可能在您的代码中的其他地方,我刚刚测试过,如果我复制和粘贴,或者如果我输入一些新文本(正常和屏幕键盘)。

      它似乎没有触发的唯一一次是当我将一些文本剪辑从桌面拖到输入框时,但这与它被突出显示有关,当输入框失去焦点时触发事件(我想不出任何其他用例)

      您可以使用blur()focusout() 事件执行以下操作,我认为这基本上是change 事件

      function foo(e) {
          alert(e.type + ' triggered');
      }
      
      $('input').blur(function(e) {
          $t = $(this);
          if ($t.data('oVal') != $t.val()) {
              $t.data('oVal', $t.val());
              foo(e);
          }
      })
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多