在过去的几年中,Google工具栏的自动填充功能一直是我的Web开发存在的祸根.我一直决定尝试创建一个计时器控件来检查更改,因为开发人员很难在控件上触发更改事件.当控件埋在嵌套中继器中时,这变得越来越复杂,然后尝试将其绑定到UpdatePanel是一个进一步的复杂问题.
有没有人能够成功阻止Google工具栏填写表单字段而无需将字段重命名为无关紧要的内容?(注意:这不适用于'State'下拉列表,甚至可以检查字段值).
为了像谷歌员工一样聪明,这是一次盛大的愚蠢疏忽.
更新:对于那些可能来这里寻找解决方案的人.到目前为止我发现的工作是你有ASP.net,是使用服务器控件"Timer"并将此控件设置为UpdatePanel的触发器.它有助于循环并检查更改的值.
如果您只能访问javascript,或者正在使用其他框架,那么我发现使用以下函数可以发挥最佳效果(我正在尝试监视状态和zip更改.focusElement是必需的,因为当将鼠标悬停在下拉列表中时,它会更改的selectedIndex):
function MonitorChanges(sStateDropdownID, sZipCodeID, sHiddenStateFieldId, sHiddenZipFieldId, bDoPostback) { var state = $('#' + sStateDropdownID).val(); var zip = $('#' + sZipCodeID).val(); var hiddenstate = $('#' + sHiddenStateFieldId).val(); var hiddenzip = $('#' + sHiddenZipFieldId).val(); $('#' + sHiddenStateFieldId).val(state); $('#' + sHiddenZipFieldId).val(zip); var compareString = state + zip; var compareHiddenString = hiddenstate + hiddenzip; var focusElement = getElementWithFocus(); if (compareString != compareHiddenString && isShippingZip(zip)) { bDoPostback = true } if (parseInt(focusElement.id.search('drpState')) == -1 && parseInt(focusElement.id.search('txtZip')) == -1 && bDoPostback) { bDoPostback = false; __doPostBack(sStateDropdownID, ''); } var f = function() { MonitorChanges(sStateDropdownID, sZipCodeID, sHiddenStateFieldId, sHiddenZipFieldId, bDoPostback); } setTimeout(f, 1000); }
Michael Kova.. 5
根据Google开发人员最近的一篇文章,使用该autocomplete="off"
属性将禁用IE和Firefox中的Google工具栏自动完成功能.请注意,此属性必须应用于标记,而不是单个
标记:
虽然这不是即时修复,但它可能是最可靠的解决方案 - 如果可以等到Google工具栏的下一次迭代.
根据Google开发人员最近的一篇文章,使用该autocomplete="off"
属性将禁用IE和Firefox中的Google工具栏自动完成功能.请注意,此属性必须应用于标记,而不是单个
标记:
虽然这不是即时修复,但它可能是最可靠的解决方案 - 如果可以等到Google工具栏的下一次迭代.