Javascript只能使用alert()和Debug模式。
Javascript只能使用alert()和Debug模式。
我在使用Chrome的自动填充字段时遇到了一个问题,Chrome无视'autocmplete="false|off|others"'。我还尝试了隐藏的伪字段,这个,这个和其他一些方法。但似乎都没有起作用。这些字段会变成黄色并包含密码,因此我决定使用以下CSS规则来手动覆盖字段:
input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill { -webkit-box-shadow: 0 0 0 1000px white inset !important; }
并使用以下javascript:
$(window).load(function() { console.log('Inside JQuery Window.Load...'); if(document.querySelector("input:-webkit-autofill")!= null) { document.querySelector("input:-webkit-autofill").value = ""; } console.log('Autofill value(Before Alert): ' + document.querySelector("input:-webkit-autofill")); alert('An alert...'); if(document.querySelector("input:-webkit-autofill")!= null) { document.querySelector("input:-webkit-autofill").value = ""; } console.log('Autofill value(After Alert): ' + document.querySelector("input:-webkit-autofill")); });
来手动覆盖字段。以下是上述脚本的日志输出:
Inside JQuery Window.Load... XXX:1324 Autofill value(Before Alert): null XXX:1329 Autofill value(After Alert): [object HTMLInputElement]
当以调试模式运行时:
Inside JQuery Window.Load... XXX:1324 Autofill value(Before Alert): [object HTMLInputElement] XXX:1329 Autofill value(After Alert): [object HTMLInputElement]
我尝试了以下不同的组合:
$('input:-webkit-autofill').each(function(){...}); window.document.querySelector("input:-webkit-autofill");
这是出现问题的字段:
我做错了什么?
如何修复这个问题...
问题出现的原因是Google Chrome自动填充功能的影响。解决方法是通过在密码输入框中添加一个特定的CSS选择器来改变自动填充的颜色,并且在输入框中添加一个只读属性来避免自动填充。以下是解决方法的具体代码:
为了避免Google Chrome的自动填充功能,尝试以下方法:
Chrome不会对只读的填充进行自动填充。无论如何,您可以通过以下CSS代码将自动填充的颜色从黄色改为白色,针对一个具有名称属性并且值为"pass"的输入框:
input[name="pass"]:-webkit-autofill { -webkit-text-fill-color: #838B95 !important; webkit-box-shadow: 0 0 0px 1000px white inset !important; //background }
一个提示是,为了避免其他不需要的CSS规则对其产生影响,最好使用尽可能具体的CSS选择器来选择元素(例如,bootstrap)。在这里生成的HTML是通过XSLT模板生成的。我想尽可能避免在那里进行更改,因为这将反映在整个应用程序中。通过在CSS规则中指定一个非常具体的CSS选择器,您可以解决这个问题。我们不使用bootstrap,对我来说很幸运。
希望以上解决方法对您有帮助。
JavaScript只能与alert()和Debug模式一起使用的问题出现的原因是,在给定的代码中,文本框没有提供type属性。解决方法是在代码中添加type="text"属性。
下面是给定代码的修改后的版本:
<input type="text" name="MY_REFNO" id="MY_REFNO" style="WIDTH: 180px" maxlength="16" onkeypress="upperAlphanumberHandler(event)" onblur="upperAlphanumberChecker('MY_REFNO')" value="" autocomplete="off">
通过添加type="text"属性,JavaScript将能够正常工作,并且可以与alert()和Debug模式一起使用。