如何检测输入值是否因模糊事件而改变?
例如,每个输入字段都有默认值(可以为空),在当前输入松开后我们应该确定焦点,值是否已更改。
怎么做?
答案 0 :(得分:7)
答案 1 :(得分:6)
您可以切换到.change()事件而不是.blur(),但我认为这在各方面都存在根本缺陷。我建议使用Jonathan Azoff的Changed jQuery插件(http://www.azoffdesign.com/changed)。在这种情况下,这可能有点过头了,所以......
有很多方法可以做到这一点,其中一种方法是将旧值存储为输入的数据属性,然后将输入值与模糊时的旧值进行比较。如果两个值不同,则更改。
示例:
<input type="text" name="firstname" data-old="Jack">
您可以使用后端类型的东西存储此值,甚至可以在页面加载时执行此操作。然后在模糊,你可以有一个像这样的事件:
$('input').blur(function() {
if ($(this).data('old') != $(this).val())
// It changed! Do something!
}
如果旧值为“Jack”,然后您将名称更改为“Bob”并触发模糊事件,则会看到“Jack”不等于“Bob”,并执行您的操作。
希望有所帮助。祝你好运。
答案 2 :(得分:4)
直接来自jQuery文档
$("input[type='text']").change( function() {
// check input ($(this).val()) for validity here
});
答案 3 :(得分:3)
比较值和 defaultValue
<input onblur="if(this.value!=this.defaultValue){alert('changed');}">
答案 4 :(得分:1)
您可以保存焦点上的输入值,并使用模糊输入中的值进行检查。