Jquery输入值变化检测

Yek*_*ver 4 javascript jquery javascript-events

如何检测输入值是否在模糊事件中发生了变化?

例如,每个输入字段都有默认值(可以为空),在当前输入松散之后我们应该确定焦点,将值更改.

这该怎么做?

Dar*_*rov 7

订阅.change()而不是.blur().这样你就会知道值已经改变了.


Jem*_*lus 6

您可以切换到.change()事件而不是.blur(),但我认为从根本上来说存在各种各样的缺陷.我建议使用Jonathan Azoff的Changed jQuery插件(http://www.azoffdesign.com/changed).在这种情况下这可能有点过头了,所以......

有很多方法可以做到这一点,其中一种方法是将旧值存储为输入的数据属性,然后将输入值与模糊时的旧值进行比较.如果两个值不同,则会发生变化.

例:

    <input type="text" name="firstname" data-old="Jack">
Run Code Online (Sandbox Code Playgroud)

您可以使用后端类型的东西存储此值,甚至可以在页面加载时执行此操作.然后在模糊,你可以有一个像这样的事件:

    $('input').blur(function() {
        if ($(this).data('old') != $(this).val())
            // It changed! Do something!
    }
Run Code Online (Sandbox Code Playgroud)

如果旧值为"Jack",然后您将名称更改为"Bob"并触发模糊事件,则会看到"Jack"不等于"Bob",并执行您的操作.

希望有所帮助.祝好运.