jQuery触发onChange事件

15

我有一个文本框,其中填充了一张图片的URL,使用jQuery函数进行操作。 如何使用的"onChange"事件来运行jQuery函数?


你在URL中使用了井号(#)吗? - Ryan
那么URL长什么样?我想我可以为你写点什么,但我对你确切想要什么感到困惑。你想把这个移到聊天中吗? - Ryan
你尝试过什么?你的代码在哪里?有没有一个可工作的演示?阅读这篇文章,然后尝试相应地编辑你的问题:https://msmvps.com/blogs/jon_skeet/archive/2010/08/29/writing-the-perfect-question.aspx - Sparky
1
请编写您的代码,以便我们提供帮助。 - Jeetendra Chauhan
4个回答

18

如果你使用JavaScript更新字段,那么在更改值后只需调用change()即可。

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

也尝试过这个,但如果字段被其他脚本更新,则不会更新。 - user1018809

13

试试这个 -

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

将其放在任何你正在更改文本框中的URL的函数中。


6

试试这个:

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

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


0

我无法想象问题出在.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);
    }
})

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接