2011-02-08 120 views

回答

7

的一个解决方案是检查字段/输入/选择不同的从它的值是否是默认值。 defaultValue将是最初在标记中的值,value是当前值aka选中或输入的值。即使表单是自动填充的,这可能会有所不同。

如果要完全关闭自动填充,它可能是明智的,对直接连接到你的逻辑字段添加自动完成=“关闭”。

+0

我也尝试了类似的解决方案,但问题是我将文本设置为“”,然后通过chrome进行自动完成,然后再次将我的凭据放到那里... – Revious 2014-10-16 11:59:01

+0

Chrome现在覆盖了自动填充功能,并决定将其自动填充为一个更好的UX: - \ – webdevinci 2016-05-03 12:37:45

0

您是否尝试过使用onpropertychanged而不是onchange事件?这仅适用于IE浏览器,并且是MSDN上的建议修复程序。我已经使用偶尔

+0

我会,但被成千上万的人跨越每一个浏览器观看可以想象一个网站,我不认为这会工作得很好。 – 2011-02-08 21:04:05

+0

这看起来类似于:http://stackoverflow.com/questions/343192/why-does-the-javascript-onchange-event-not-fire-if-autocomplete-is-on – Satyajit 2011-02-08 21:35:52

0

万一有人还在寻找一个解决方案( )正如我今天听一个浏览器自动填充的变化,这里是我建立一个自定义的jQuery的方法,只是增加一个变化监听器,输入时简化proccess:

$.fn.allchange = function (callback) { 
     var me = this; 
     var last = ""; 
     var infunc = function() { 
      var text = $(me).val(); 
      if (text != last) { 
       last = text; 
       callback(); 
      } 
      setTimeout(infunc, 100); 
     } 
     setTimeout(infunc, 100); 
    }; 

你可以这样调用:

$("#myInput").allchange(function() { 
    alert("change!"); 
});